跳转至

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 ...
}

评论