Qt学习之路(29):画图设备[VC/C++编程]
本文“Qt学习之路(29):画图设备[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
画图设备是指担当QPainterDevice的子类.Qt一共供应了四个这样的类,辨别是QPixmap、QBitmap、QImage和 QPicture.此中,QPixmap专门为图象在屏幕上的显示做了优化,而QBitmap是QPixmap的一个子类,它的色深限定为1,你可以利用 QPixmap的isQBitmap()函数来肯定这个QPixmap是不是一个QBitmap.QImage专门为图象的像素级拜候做了优化. QPicture则可以记录和重现QPainter的各条号令.下面我们将分两部份介绍这四种画图设备.
QPixmap担当了QPaintDevice,因此,你可以利用QPainter直接在上面绘制图形.QPixmap也可以承受一个字符串作为一个文件的途径来显示这个文件,比方你想在程序之中翻开png、jpeg之类的文件,便可以利用 QPixmap.利用QPainter的drawPixmap()函数可以把这个文件绘制到一个QLabel、QPushButton大概其他的设备上面.QPixmap是针对屏幕举行特别优化的,因此,它与实际的底层显示设备息息相关.注意,这里说的显示设备并非硬件,而是操作系统供应的原生的画图引擎.所以,在差别的操作系统平台下,QPixmap的显示大概会有所差别.
QPixmap供应了静态的grabWidget()和grabWindow()函数,用于将自身图象绘制到目标上.同时,在利用QPixmap时,你可以直接利用传值也不需求传指针,因为QPixmap供应了“隐式数据同享”.关于这一点,我们会在今后的章节中具体描写,这里只要知道传送QPixmap没必要须利用指针就行了.
QBitmap担当自QPixmap,因此具有QPixmap的全部特点.QBitmap的色深始终为1. 色深这个概念来自计算机图形学,是指用于表现颜色的二进制的位数.我们知道,计算机里面的数据都是利用二进制表示的.为了表示一种颜色,我们也会利用二进制.比方我们要表示8种颜色,需求用3个二进制位,这时我们就说色深是3. 因此,所谓色深为1,也就是利用1个二进制位表示颜色.1个位只有两种状况:0和1,因此它所表示的颜色就有两种,黑和白.所以说,QBitmap实际上是只有黑白两色的图象数据.
由于QBitmap色深小,因此只占用很少的存储空间,所以合适做光标文件和笔刷.
下面我们来看同一个图象文件在QPixmap和QBitmap下的差别表现:
void PaintedWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPixmap pixmap("Cat.png");
QBitmap bitmap("Cat.png");
painter.drawPixmap(10, 10, 128, 128, pixmap);
painter.drawPixmap(140, 10, 128, 128, bitmap);
QPixmap pixmap2("Cat2.png");
QBitmap bitmap2("Cat2.png");
painter.drawPixmap(10, 140, 128, 128, pixmap2);
painter.drawPixmap(140, 140, 128, 128, bitmap2);
}
先来看一下运行后果:
以上是“Qt学习之路(29):画图设备[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |