跳转至

2D 画图

  1. QPainter

    是一个画图类,可以指定画笔颜色、粗细、填充等属性,可以认为是 画家

  2. QPaintDevice

    是一个二维空间的抽象,可以认为是 画布

    QWidget 类继承了 QPaintDevice,所以所有继承自 QWidget 的类都可以使用 QPainter 画图

  3. QPaintEngine

    QPainterDevice 类和 QPaint 类提供一个中间层接口,使它们在不同的设备上能使用相同的接口画图。我们一般不需要考虑该类

QPainter 类中有一个用于 UI 绘制的虚函数 paintEvent(),我们可以重写这个虚函数让它在绘制 UI 之余,也绘制我们想要的东西

// graph.h
class graph{
    Q_OBJECT
public:
    graph(QWidget *parent=nullptr);
    ~graph();
protected:
    // 在保护成员中重写 paintEvent 让 QPainter 为我们作画
    void paintEvent(QPaintEvent *);
}
// graph.cpp
graph::graph(QWidget *parent)
    : QWidget(parent){}
graph::~graph(){}
void paintEvent(QPaintEvent *){
    // Paint here ...
}

评论