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