2D绘图系统

 Qt Widgets
时间:

可以使用相同的API在屏幕和绘图设备上进行绘制。
主要基于:

  • QPainter
  • QPaintDevice
  • QPaintEngine
    1. QPainter:用来执行绘图操作。
    2. QPaintDevice:提供绘图设备,是一个二维空间抽象,可以使用QPainter在其上进行绘制;是所有可以进行绘制的对象的基类,他的子类主要有QWidget,QPixmap,QPicture,QImage,QPrinter和QOpenGLPaintDevice等。
    3. QPaintEngine:提供了一些接口,用于QPainter和QPaintDevice内部,使得QPainter可以在不同的设备上进行绘制;除了创建自定义的绘图设备类型,一般编程不使用该类。

关系图

基本绘制和填充

绘图系统:由QPainter完成具体绘图操作,可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,还可以绘制文本和图片。
QPainter一般在一个部件重新绘制事件(Paint Event)的处理函数paintEvent()中进行绘制,首先要创建QPainter对象,然后进行图形的绘制,最后销毁QPainter对象。


使用画笔

  • QPen类为QPainter提供了画笔来绘制线条和形状的轮廓。
    QPen::QPen(const QBrush & brush, qreal width, Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap, Qt::PenJoinStyle join = Qt::BevelJoin)
    
  • 参数:

1.const QBrush:画刷(提供内部填充颜色)

setBrush()

2.qreal:线宽(默认为0)

setWidth()

3.Qt::PenStyle: 画笔风格

setStyle()

4.Qt::PenCapStyle: 画笔端点风格

setCapStyle()

5.Qt::PenJoinStyle: 画笔连接风格

setJoinStyle()

创建完画笔后:使用setPen()来为painter设置画笔。


0 评论