4.QPixmap,QTransform,绘图函数的使用


  1. 新建一个项目Painter

MyWidget.h

#ifndef MYWIDGET_H

#define MYWIDGET_H

 

#include

 

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

#include

#include

 

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();

}

运行结果:

4.QPixmap,QTransform,绘图函数的使用_第1张图片

 

 

 

 

 

你可能感兴趣的:(#,QT)