PaintDevice包括:QPixmap QImage QPicture QWidget QBitmap等
Pixmap:
1.创建Pixmap 对象 Pixmap pix(300,300);//设置画图界面大小
2.创建画家Painter painter(&pix)//使用pix绘图设备
3.设置pix背景颜色pix.fill()
4.painter画图
5.保存到磁盘pix.save("")
//QPixmap 绘图事件 可将画的图片保存在本地
QPixmap pix(300,300);//设置窗口大小
pix.fill(Qt::white);//设置pixmap的背景颜色
QPainter painter(&pix);
painter.setPen(Qt::blue);
painter.drawText(0,100,"唧唧复唧唧");
pix.save("D:/image/text_pix.png");
QImage:
绘图设备 可以对像素值进行修改(触发绘图事件)
1.做绘图设备
QImage img(300,300,QImage::Format_RGB32);
img.fill(Qt::white);
QPainter painter(&img);
painter.setPen(Qt::red);
painter.drawEllipse(QPoint(150,150),100,100);
painter.setPen(Qt::green);
painter.drawEllipse(QPoint(150,150),80,80);
img.save("D:/image/text_img.png");
2.修改资源文件的像素值
声明绘图事件函数paintEvent
在函数中定义QImage img,并且加载资源图片,设置要修改的区域以及要修改的数值,
QRgb val=qRgb(-,-,-)
img.setPixel(x,y,val)
最后使用画家画出修改后的资源图片painter.drawImage(0,0,img);
//绘图事件
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QImage img;
img.load(":/image/xyy.png");//加载资源文件
for(int i=0;i<100;++i)
{
for(int j=0;j<100;++j)
{
QRgb val=qRgb(189,123,65);
img.setPixel(i,j,val);
}
}
painter.drawImage(0,0,img);
}
QPicture: 记录并重现指令
QPicture pic
QPainter painter;
//开始
painter.begin(&pic);
painter.draw
painter.end()
//结束
//保存
pic.save(地址)
//QPicture绘图设备 可以记录和重现 绘图指令
QPicture pic;
QPainter painter;
painter.begin(&pic);
painter.setPen(Qt::cyan);
painter.drawEllipse(QPoint(150,150),100,100);
painter.end();
//保存到磁盘
pic.save("D:/image/pic.lk");
//
重新加载指令,在此窗口进行绘画(显示)
QPainter painter(this);
QPicture pic;
pic.load(地址)
painter.drawPicture(x,y,pic);
//重现QPainter的绘画指令
QPainter painter(this);
QPicture pic;
pic.load("D:/image/pic.lk");//加载绘图指令
painter.drawPicture(0,0,pic);