QT 中提供强大的绘图系统,主要基于QPrinter 、QPaintDevice及QPaintEngine这3个类。
QPrinter用于执行绘图操作
QPaintDevice用于提供绘图设备
QPaintEngine提供一些接口
1、基本绘制和填充
绘图系统中由QPainter完成具体的绘制操作,其中提供大量高度优化的函数来完成GUI编程所需要的大部分绘制工作。QQPrinter 可绘制一切想要的图形。
QQPrinter一般在一个部件重绘事件的处理函数paintEvent()中进行绘制,首先要创建QQPrinter对象,然后进行图形的绘制,最后销毁QQPrinter对象。
1.1基本图形的绘制和填充
1)绘制图形
先创建QPrinter对象,使用QQPrinter:(QPaintDevice *device)构造函数,并指定this为绘图设备,表明Widge部件上进行绘制。
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawLine(QPoint(0, 0), QPoint(100, 100));
}
常用的图形绘制函数:
drawArc():绘制圆弧;
drawChord():绘制弦;
drawConvexPolygon():绘制凸多边形;
drawEllipse():绘制椭圆;
drawLine():绘制线条;
drawPie():绘制扇形;
drawPoint():绘制点;
drawPolyg