GUI用户界面实际上都是通过绘图得到的。Qt的二维绘图基本功能是使用QPainter在绘图设备上绘图。QPainter可以绘制所有的图形,从基本图形——点、线、圆到复杂的图形。本篇笔记通过总结QPainter的使用,试图深入理解Qt的绘图机制。
QPainter基本属性
Qt的绘图系统涉及QPainter、QPaintDevice和QPaintEngine类。QPainter是用来绘图的类,QPaintDevice是一个可以使用QPainter进行绘图的的抽象的二维界面,QPaintEngine给QPainter提供在不同设备上绘图的接口。QPaintEngine类由QPainter和QPainterDevice内部使用,我们的应用程序无须和QPaintEngine打交道。一般的绘图设备包括QWidget、QPixmap、QImage等,这些绘图设备为QPainter提供画布。
QPainter的常见用法是实现窗体的绘图事件。即重写paintEvent函数:
void SimpleExampleWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(Qt::blue);