QT中有三个常见的绘图设备:QPixmap、QImage、QPicture 。三者的用法几乎一模一样,但要注意三者性质上的区别。
- QPixmap :专门针对屏幕进行优化,和平台相关,不同的平台导致显示效果不一样(不能对图片像素点进行修改)
- QImage:和平台无关,可以对图片像素点进行修改,在线程中绘图(很重要)
- QPicture:保存绘图的状态(二进制文件,而不是图片),方便另外一个电脑进行读取
值得注意的是往常编写窗口绘图代码是在Virtual void PaintEvent() ; 函数中进行编写。但此次绘图是在绘图设备上进行,因此可以在相应的构造函数中进行程序编写。
QPixmap程序编写如下:
//QPixmap类的绘图设备, 400*300
QPixmap pixmap(400,300) ; // height , length 为其构造函数的参数
QPainter painter(&pixmap) ;
//填充背景颜色
painter.fillRect(0,0,400,300,QBrush(Qt::white));
painter.drawPixmap(0,0,80,80,QPixmap(":/new/prefix1/D:/Image/123456.jpg"));
//绘制了图片之后,想要查看的话,只有通过保存的方式才能进行查看。
//因为图片不在窗口中显示
//保存图片
pixmap.save("../pixmap.jpg") ; //图片保存在子文件的上级目录中。
QImage程序编写如下:
//创建一个绘图设备
QImage image(400,300,QImage::Form