主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QPaintDevice类是所有可以绘制的对象的基类。 详情请见……
#include <qpaintdevice.h>
由QPixmap、QWidget、QPicture和QPrinter继承。
一个绘制设备就是一个可以使用QPainter来绘制的二维空间的抽象。绘画的能力由子类QWidget、QPixmap、QPicture和QPrinter来实现。
绘制设备的默认坐标系统的原点在左上角。X向右增加,Y向下增加。单位是一个像素。这里有几种方法在使用绘制工具时来设置用户自定义的坐标系统,比如,使用QPainter::setWorldMatrix()。
实例(在一个绘制设备上绘画):
void MyWidget::paintEvent( QPaintEvent * ) { QPainter p; // 我们的绘制工具 p.begin( this ); // 开始在窗口部件上绘制 p.setPen( red ); // 红色的外框 p.setBrush( yellow ); // 用黄色填充 p.drawEllipse( 10, 20, 100,100 ); // 在(10, 20)位置的100x100的椭圆 p.end(); // 绘制结束 }
位块传送是从一个绘制设备向另一个(或者它自己)复制像素的非常有用的函数。它是由全局函数bitBlt()实现的。
实例:(向右滚动窗口部件内容10个像素):
bitBlt( myWidget, 10, 0, myWidget );
警告: 在任何绘制设备创建之前,Qt需要一个QApplication对象存在。绘制设备访问窗口系统资源,并且这些资源在一个应用程序对象没有创建之前是没有初始化的。
由不直接支持绘制图画的子类实现(外部绘制设备,比如,QPicture)。
HANDLE的类型根据平台的不同而不同,详细情况请见qpaintdevice.h和qwindowdefs.h。
也可以参考x11Display()。
如果设备是一个外部绘制设备,返回真,否则返回假。
外部绘制设备不能作为bitBlt()的源。QPicture和QPrinter是外部绘制设备。
如果设备正在被绘制,比如某人已经调用了QPainter::begin()但还没有对这个设备调用QPainter::end(),返回真,否则返回假。
也可以参考QPainter::isActive()。
返回X显示全部到应用程序的颜色映射的条目的数量(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Colormap()。
返回X显示全部到应用程序的颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
返回X显示全部到应用程序的默认颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
返回X显示全部到应用程序的默认视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
返回X显示全部到应用程序的深度(仅X11下有效)。使用这个函数是不可移植的。
也可以参考QPixmap::defaultDepth()。
返回X显示全部到应用程序的指针(仅X11下有效)。使用这个函数是不可移植的。
也可以参考handle()。
也可以参考x11AppDpiY()、x11SetAppDpiX()和QPaintDeviceMetrics::logicalDpiX()。
也可以参考x11AppDpiX()、x11SetAppDpiY()和QPaintDeviceMetrics::logicalDpiY()。
返回X显示全部到应用程序的屏幕数量(仅X11下有效)。使用这个函数是不可移植的。
返回X显示全部到应用程序的视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
返回X显示全部到绘制设备的颜色映射的条目的数量(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Colormap().
返回X显示全部到绘制设备的颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
返回X显示全部到绘制设备的默认颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
返回X显示全部到绘制设备的默认视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
返回X显示全部到绘制设备的深度(仅X11下有效)。使用这个函数是不可移植的。
也可以参考QPixmap::defaultDepth()。
返回X显示全部到绘制设备的指针(仅X11下有效)。使用这个函数是不可移植的。
也可以参考handle()。
返回X显示全部到绘制设备的屏幕数量(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11SetAppDpiY()。
也可以参考x11SetAppDpiX()。
返回X显示全部到绘制设备的视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
把一个像素块从src复制到dst,也许根据光栅操作rop来合并每一个像素。sx和sy是src中的左上像素,默认为(0, 0),dx和dy是dst的左上位置并且sw和sh是复制块的大小(默认情况下都是src的)。
rop的最普通的值是CopyROP和XorROP,Qt::RasterOp文档中定义了所有的可能值。
如果ignoreMask是真(默认是假)并且src是一个遮蔽的QPixmap,整个二进制块被src->mask()遮蔽。
如果src、dst、sw或sh为0,bitBlt()不会做任何事情。如果sw或sh为负,bitBlt()的复制会从sx开始(分别地,sy)并且到src右端点(分别地,下)结束。
src必须是一个QWidget或者QPixmap。比如,你不能从一个QPrinter做块复制。如果你试图从一个不支持的设备做块复制,bitBlt()将不会做任何事情。
如果src的深度比dst高,bitBlt()不会做任何事。如果你需要这样的操作,比如在一个8位的窗口部件绘制24位的像素映射,你必须使用drawPixmap()。
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
使用了目标点dp和源矩形sr重载bitBlt()。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|