QPainter基本绘图
QPainter绘图系统
Qt可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter,QPainteDevice和QPaintEngine这三个类
- QPainter:用来进行绘图操作的类。
- QPaintDevice:抽象的二位界面,是中间媒介
- QPaintEninge:提供了一些接口,可用于QPainter在不同设备上进行绘制。
QPainter详解
- QPainter可以在继承自QPainterDevice类的任何对象上机型绘制操作.一般图形设备包括QWidget,QPixmap,QImage等,这些绘图设备为QPainter提供了一个画布。
- QPainter一般在部件的绘图事件painterEvent()中进行绘制,当前窗口程序需要升级或者重新绘制时,调用此成员函数。使用repaint()和update()后,调用函数painterEvent()
void Widget::painterEvent(QPaintEvent *event)
{
QPainter painter(this);//创建于绘图设备关联的QPainter对象
}
- QPainter的3个主要设置:pen,brush,font
painter.setPen(QPen(..));
painter.setBrush(QBrush(..));
painter.setFont(QFont(..));
QWidget的内部绘图区的坐标系统

这个坐标系统是QWidget绘图区域的局部物理坐标,成为视口(viewport)坐标。相应了的还有逻辑坐标,成为窗口(window)坐标。
- 坐标系统的单位是像素
- 左上角坐标为(0,0),向右是X轴正方向,向下是Y轴正方向。
- 绘图区的宽度右QWidget::width()获取,高度由QWidget::height()获取,所以右下角点是(width(),height())
浙公网安备 33010602011771号