QT(绘图)
绘图设备
QPixmap:针对屏幕进行优化了,和平台相关,不能对图片进行修改
QInage:和平台无关,可以对图片进行修改,在线程中绘图
QPicture:保存绘图的状态(二进制文件)
头文件:#include <QPainter>
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);