2D 画图¶
-
QPainter是一个画图类,可以指定画笔颜色、粗细、填充等属性,可以认为是 画家 类
-
QPaintDevice是一个二维空间的抽象,可以认为是 画布 类
QWidget类继承了QPaintDevice,所以所有继承自QWidget的类都可以使用QPainter画图 -
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 ...
}