Qt绘图与打印全解析
1. 绘图基础
在Qt中,几乎所有的绘图操作都是通过QPainter类来完成的。无论是绘制窗口部件、图片、代理等,都使用相同的机制。唯一的例外是直接使用OpenGL。
1.1 可绘制对象与QPaintDevice
在Qt里,你可以在几乎任何对象上进行绘制,像窗口部件、图片、像素图、图像、打印机、OpenGL区域等等。这些可绘制对象的公共基类是QPaintDevice类。
若要在窗口部件上绘图,可轻松创建一个QPainter对象,只需将窗口部件指针作为参数传递给构造函数,示例代码如下:
void CircleBar::paintEvent( QPaintEvent *event ) { ... QPainter p( this ); ... }若要为其他绘制设备设置绘图器,同样将该设备的指针传递给绘图器的构造函数。以下是为像素图设置绘图器的示例:
QPixmap pixmap( 200, 100 ); QPainter painter( &pixmap ); painter.setPen( Qt::red ); painter.setBrush( Qt::yellow ); ...在Qt中有三个主要的图形表示类:QPixmap <