标签:style blog http io ar color 使用 sp for
新建一个项目Painter
MyWidget.h |
#ifndef MYWIDGET_H #define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); void paintEvent(QPaintEvent *);
signals:
public slots:
};
#endif // MYWIDGET_H |
MyWidget.cpp |
#include "MyWidget.h" #include <QPainter> #include <QPixmap> #include <QApplication>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { }
void MyWidget::paintEvent(QPaintEvent *) { QPixmap pixmap(size());
QPainter p(&pixmap);
//p.translate(100, 100); //p.scale(); //消除锯齿 p.setRenderHint(QPainter::Antialiasing); //转换 QTransform transform; transform.translate(50,50); //旋转30度 transform.rotate(30); // transform.scale(.5, .5); p.setTransform(transform); #if 1 //下面的transform可以覆盖上面的一个transform的效果 QTransform transform2; //对整个效果进行缩放 transform2.scale(.5, .5); //最后一个参数实现和上面一个transform实现组合 p.setTransform(transform2, true); #endif //通过两个点实现画线 p.drawLine(QPoint(0, 0), QPoint(100, 100));
//p.translate(-100, -100); //钢笔 p.setPen(QPen(Qt::red, 2, Qt::DashLine)); //使用刷子 p.setBrush(Qt::yellow); //设置刷子 p.setFont(QFont("aaa", 40, 700, true));
p.drawEllipse(QPoint(95, 333), 50, 50); //里面写上文字 p.drawText(QPoint(300, 50), "Hello world"); //p.drawPixmap(QPoint(40, 40), QPixmap("../aaa.png")); //p.drawRect(QRect(40, 60, 100, 50)); //下面的方式实现画一个圆角矩形 p.drawRoundRect(QRect(40, 60, 100, 50));
p.end();
p.begin(this); //通过下面的方式实现画图,之所以运行的结果是黑丝的图,是因为加的是pixmap p.drawPixmap(0, 0, pixmap); }
int main(int argc, char** argv) { QApplication app(argc, argv);
MyWidget w; w.show();
return app.exec(); } |
运行结果:
|
|
标签:style blog http io ar color 使用 sp for
原文地址:http://blog.csdn.net/tototuzuoquan/article/details/41898077