- QPaintDevice提供绘图设备,它是一个抽象的二维空间,可以使用QPainter在其上进行绘制;QPaintDevice类是所有可以进行绘制的对象的基类,它的子类主要有QWidget,QPixmap,QImage,QPrinter和QOpenGLPainterDevice等。
- QPaintEngine则提供了一些接口,用于QPainter和QPaintDevice内部,使得QPainter可以在不同的设备上进行绘制。除了要创建自定义的绘图设备外,一般编程中不需要使用该类。
- QPainter一般在一个部件重绘事件的处理函数paintEvent()中进行绘制操作。首先创建QPainter对象,图形绘制完成后再销毁QPainter对象。
- 使用QPainter::QPainter(QPaintDevice * device)构造函数创建的QPainter实例对象会立即开始在设备上进行绘制,自动调用begin()函数,然后在QPainter的析构函数中调用end()函数结束绘制。
- 如果在构建QPainter对象时不想指定绘图设备,那么可以使用不带参数的构造函数,然后使用QPainter::begin(QPaintDevice * device)开始在指定设备上进行绘制操作,等绘制完成后再调用end()函数结束绘制。