QT(绘图)

绘图设备

QPixmap:针对屏幕进行优化了,和平台相关,不能对图片进行修改

QInage:和平台无关,可以对图片进行修改,在线程中绘图

QPicture:保存绘图的状态(二进制文件)

头文件:#include

1.

widget.h

protected:

    //重写绘图事件,虚函数

    //如果在窗口绘图,必须放在绘图事件里实现

    //绘图事件内部自动调用,窗口需要重绘的时候(状态改变)

void paintEvent(QPaintEvent *);

widget.cpp

void myWidget::paintEvent(QPaintEvent *)

{

    //QPainter p(this);

    QPainter p;//创建画家对象

    p.begin(this);//指定当前窗口为绘图设备

    //绘图操作

    //p.drawxxx();

    //画背景图

    p.drawPixmap(0,0,width(),height(),QPixmap("../Image/22.jpg"));

    //p.drawPixmap(rect(),QPixmap("../Image/22.jpg")); //rect会直接获得所在矩形框四个边

    p.end();

}

头文件 


2.窗口自动重绘

private:  int x;

        void myWidget::on_pushButton_clicked()

{

    x += 20;

    if(x > width())

    {

        x = 0;

    }

    //刷新窗口,让窗口重绘

    update();//间接调用

}

3.QPixmap -->QImage

    Qpainter p(this);

    QPixmap pixmap;

    pixmap.load("../Image/face.png");

    p.drawImage(0,0,tempImage);

  4.QImage-->QPixmaop

    QImage image;

    image.load("路径");

    QPixmap tempPixmap = QPixmap::formImage(image);

    p.drawPixmap(100,0,tempPixmap);

你可能感兴趣的:(QT(绘图))