QT的绘图设备分为:QPixmap、QBixmap、QImage、QPicture
一、QPixmap
#include <QPainter>
//QPixmap作绘图设备,对不同平台做了显示优化
QPixmap pixmap(300,300);
pixmap.fill(Qt::white); //设置背景颜色为白色
QPainter painter1(&pixmap);
painter1.setPen(QPen(Qt::green)); //设置画笔,画笔颜色为绿色
painter1.drawEllipse(QPoint(150,150),50,50); //画圆
pixmap.save("C:\\Users\\Admin\\Desktop\\ellipse.png"); //保存路径
二、QImage
#include <QPainter>
//QImage作绘图设备,对像素级的访问作了优化
QImage image(300,300,QImage::Format_RGB32); //指定长、宽、颜色格式
image.fill(Qt::white); //设置背景颜色为白色
QPainter painter2(&image);
painter2.setPen(QPen(Qt::blue)); //设置画笔,画笔颜色为蓝色
painter2.drawEllipse(QPoint(150,150),50,50); //画圆
image.save("C:\\Users\\Admin\\Desktop\\image.png"); //保存路径
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter3(this);
QImage img;
img.load(":/prefix1/image/1.png");
for (int i=0;i<100;i++)
{
for (int j=0;j<100;j++)
{
QRgb rgbRead = img.pixel(i,j); //读取某一点的RGB值
QRgb rgb = qRgb(0,255,0);
img.setPixel(i,j,rgb);
}
}
painter3.drawImage(0,0,img);
}
三、QPicture
#include <QPicture>
//QPicture作绘图设备,记录和重现画家的操作
QPicture picture;
QPainter painter3;
painter3.begin(&picture);
painter3.setPen(QPen(Qt::blue)); //设置画笔,画笔颜色为蓝色
painter3.drawEllipse(QPoint(150,150),50,50); //画圆
painter3.end();
picture.save("C:\\Users\\Admin\\Desktop\\picture.txt");
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter3(this);
QPicture picture;
picture.load("C:\\Users\\Admin\\Desktop\\picture.txt");
painter3.drawPicture(0,0,picture);
}