首页 > 代码库 > 4.QPixmap,QTransform,绘图函数的使用
4.QPixmap,QTransform,绘图函数的使用
新建一个项目Painter
MyWidget.h |
#ifndefMYWIDGET_H #defineMYWIDGET_H
#include<QWidget>
classMyWidget:publicQWidget { Q_OBJECT public: explicitMyWidget(QWidget*parent= 0); voidpaintEvent(QPaintEvent*);
signals:
publicslots:
};
#endif//MYWIDGET_H |
MyWidget.cpp |
#include"MyWidget.h" #include<QPainter> #include<QPixmap> #include<QApplication>
MyWidget::MyWidget(QWidget*parent): QWidget(parent) { }
voidMyWidget::paintEvent(QPaintEvent*) { QPixmappixmap(size());
QPainterp(&pixmap);
//p.translate(100,100); //p.scale(); //消除锯齿 p.setRenderHint(QPainter::Antialiasing); //转换 QTransformtransform; transform.translate(50,50); //旋转30度 transform.rotate(30); //transform.scale(.5,.5); p.setTransform(transform); #if1 //下面的transform可以覆盖上面的一个transform的效果 QTransformtransform2; //对整个效果进行缩放 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),"Helloworld"); //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); }
intmain(intargc,char**argv) { QApplicationapp(argc,argv);
MyWidgetw; w.show();
returnapp.exec(); } |
运行结果: |
|
4.QPixmap,QTransform,绘图函数的使用