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())
posted @ 2025-11-02 18:52  焦涛  阅读(27)  评论(0)    收藏  举报