主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QPaintDevice类参考
QPaintDevice类是所有可以绘制的对象的基类。 详情请见……
#include <qpaintdevice.h>
由QPixmap、QWidget、QPicture和QPrinter继承。
公有成员
- virtual ~QPaintDevice ()
- bool isExtDev () const
- bool paintingActive () const
- virtual HDC handle () const
- virtual Qt::HANDLE handle () const
- Display * x11Display () const
- int x11Screen () const
- int x11Depth () const
- int x11Cells () const
- Qt::HANDLE x11Colormap () const
- bool x11DefaultColormap () const
- void * x11Visual () const
- bool x11DefaultVisual () const
静态公有成员
- Display * x11AppDisplay ()
- int x11AppScreen ()
- int x11AppDepth ()
- int x11AppCells ()
- int x11AppDpiX ()
- int x11AppDpiY ()
- Qt::HANDLE x11AppColormap ()
- bool x11AppDefaultColormap ()
- void * x11AppVisual ()
- bool x11AppDefaultVisual ()
- void x11SetAppDpiX ( int dpi )
- void x11SetAppDpiY ( int dpi )
保护成员
- QPaintDevice ( uint devflags )
- virtual bool cmd ( int, QPainter *, QPDevCmdParam * )
相关函数
- void bitBlt ( QPaintDevice * dst, int dx, int dy, const QPaintDevice * src, int sx, int sy, int sw, int sh, Qt::RasterOp rop, bool ignoreMask )
- void bitBlt ( QPaintDevice * dst, const QPoint & dp, const QPaintDevice * src, const QRect & sr, RasterOp rop )
详细描述
QPaintDevice类是所有可以绘制的对象的基类。
一个绘制设备就是一个可以使用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对象存在。绘制设备访问窗口系统资源,并且这些资源在一个应用程序对象没有创建之前是没有初始化的。
成员函数文档
QPaintDevice::QPaintDevice ( uint devflags ) [保护]
使用内部标记devflags构造一个绘制设备。这个构造函数只能由QPaintDevice的子类调用。QPaintDevice::~QPaintDevice () [虚]
销毁绘制设备并且释放窗口系统资源。bool QPaintDevice::cmd ( int, QPainter *, QPDevCmdParam * ) [虚 保护]
从绘制工具中解释绘画指令的内部虚函数。由不直接支持绘制图画的子类实现(外部绘制设备,比如,QPicture)。
Qt::HANDLE QPaintDevice::handle () const [虚]
返回用于低级访问的绘制设备的窗口系统句柄。使用这个函数是不可移植的。HANDLE的类型根据平台的不同而不同,详细情况请见qpaintdevice.h和qwindowdefs.h。
也可以参考x11Display()。
bool QPaintDevice::isExtDev () const
如果设备是一个外部绘制设备,返回真,否则返回假。
外部绘制设备不能作为bitBlt()的源。QPicture和QPrinter是外部绘制设备。
bool QPaintDevice::paintingActive () const
如果设备正在被绘制,比如某人已经调用了QPainter::begin()但还没有对这个设备调用QPainter::end(),返回真,否则返回假。
也可以参考QPainter::isActive()。
int QPaintDevice::x11AppCells () [静态]
返回X显示全部到应用程序的颜色映射的条目的数量(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Colormap()。
Qt::HANDLE QPaintDevice::x11AppColormap () [静态]
返回X显示全部到应用程序的颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
bool QPaintDevice::x11AppDefaultColormap () [静态]
返回X显示全部到应用程序的默认颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
bool QPaintDevice::x11AppDefaultVisual () [静态]
返回X显示全部到应用程序的默认视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
int QPaintDevice::x11AppDepth () [静态]
返回X显示全部到应用程序的深度(仅X11下有效)。使用这个函数是不可移植的。
也可以参考QPixmap::defaultDepth()。
Display * QPaintDevice::x11AppDisplay () [静态]
返回X显示全部到应用程序的指针(仅X11下有效)。使用这个函数是不可移植的。
也可以参考handle()。
int QPaintDevice::x11AppDpiX () [静态]
返回X显示的水平DPI(仅X11下有效)。使用这个函数是不可移植的。关于可移植的访问的相关信息请看QPaintDeviceMetrics。使用这个函数是不可移植的。
也可以参考x11AppDpiY()、x11SetAppDpiX()和QPaintDeviceMetrics::logicalDpiX()。
int QPaintDevice::x11AppDpiY () [静态]
返回X显示的垂直DPI(仅X11下有效)。使用这个函数是不可移植的。关于可移植的访问的相关信息请看QPaintDeviceMetrics。使用这个函数是不可移植的。
也可以参考x11AppDpiX()、x11SetAppDpiY()和QPaintDeviceMetrics::logicalDpiY()。
int QPaintDevice::x11AppScreen () [静态]
返回X显示全部到应用程序的屏幕数量(仅X11下有效)。使用这个函数是不可移植的。
void * QPaintDevice::x11AppVisual () [静态]
返回X显示全部到应用程序的视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
int QPaintDevice::x11Cells () const
返回X显示全部到绘制设备的颜色映射的条目的数量(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Colormap().
Qt::HANDLE QPaintDevice::x11Colormap () const
返回X显示全部到绘制设备的颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
bool QPaintDevice::x11DefaultColormap () const
返回X显示全部到绘制设备的默认颜色映射(仅X11下有效)。使用这个函数是不可移植的。
也可以参考x11Cells()。
bool QPaintDevice::x11DefaultVisual () const
返回X显示全部到绘制设备的默认视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
int QPaintDevice::x11Depth () const
返回X显示全部到绘制设备的深度(仅X11下有效)。使用这个函数是不可移植的。
也可以参考QPixmap::defaultDepth()。
Display * QPaintDevice::x11Display () const
返回X显示全部到绘制设备的指针(仅X11下有效)。使用这个函数是不可移植的。
也可以参考handle()。
int QPaintDevice::x11Screen () const
返回X显示全部到绘制设备的屏幕数量(仅X11下有效)。使用这个函数是不可移植的。
void QPaintDevice::x11SetAppDpiX ( int dpi ) [静态]
设置通过x11AppDpiX()返回的值为dpi。默认情况下决定于显示配置。这个值的变化将会使字体的边缘发生变化,并且许多其它的度量标准将不被推荐。使用这个函数是不可移植的。
也可以参考x11SetAppDpiY()。
void QPaintDevice::x11SetAppDpiY ( int dpi ) [静态]
设置通过x11AppDpiY()返回的值为dpi。默认情况下决定于显示配置。这个值的变化将会使字体的边缘发生变化,并且许多其它的度量标准将不被推荐。使用这个函数是不可移植的。
也可以参考x11SetAppDpiX()。
void * QPaintDevice::x11Visual () const
返回X显示全部到绘制设备的视件(Visual)(仅X11下有效)。使用这个函数是不可移植的。
相关函数
void bitBlt ( QPaintDevice * dst, int dx, int dy, const QPaintDevice * src, int sx, int sy, int sw, int sh, Qt::RasterOp rop, bool ignoreMask )
把一个像素块从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()。
void bitBlt ( QPaintDevice * dst, const QPoint & dp, const QPaintDevice * src, const QRect & sr, RasterOp rop )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
使用了目标点dp和源矩形sr重载bitBlt()。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|