前言
在实际工程中,许多时候需要绘图操作,例如,在获得一系列数据后,需要把数据绘制成折线图显示在窗口中,那么这时需要用到绘图操作。这篇文章从零基础开始,教你QT绘制图形。
具体步骤
1、首先在.h头文件中建立保护类型绘图事件:
protected:
void paintEvent(QPaintEvent *);
2、在.cpp中包含#include <QPainter>
3、在.cpp中调用绘图事件:
void Widget::paintEvent(QPaintEvent *)
{
QPainter p; //创建绘图对象
p.begin(this);
p.drawLine(50,50,150,50); //给出绘图坐标
}
绘图坐标需要给出绘图的起点和终点,例如画直线时的构造函数为
p.drawLine(x轴起始坐标,y轴起始坐标,x轴终止坐标,y轴终止坐标);
以上绘图结果如图示:
显然,这样画出来的图线并不令人满意。因此,我们可以进一步,用画笔的形式来绘图。
4.在.cpp中包含头文件#include <QPen>
5.在上述绘图过程中插入画笔
QPen pen; //创建画笔对象
pen.setWidth(5); //设定画笔线条宽度
pen.setColor(QColor(142,16,126)); //设定线条颜色
p.setPen(pen); //把画笔交给画家
绘图结果如下:
我们就改变了线条的宽度和颜色。
改变线条颜色
在.cpp中包含头文件#include <QPen>
,改变线条颜色有两种方式:
(1)使用Qt颜色库pen.setColor(Qt::blue);
,方便简洁,缺点是颜色单一,不一定能取到我们喜欢的颜色。
颜色 | 颜色 |
---|---|
Qt::white | Qt::black |
Qt::red | Qt::darkRed |
Qt::green | Qt::darkGreen |
Qt::blue | Qt::darkBlue |
Qt::cyan | Qt::darkCyan |
Qt::magenta | Qt::darkMagenta |
Qt::yellow | Qt::darkYellow |
Qt::gray | Qt::darkGray |
Qt::lightGray | Qt::transparent |
(2)使用RGB颜色库pen.setColor(QColor(142,16,126));
可以调出任意一种颜色,需要借助图形界面.UI文件或者RGB调色板。
改变线条线型
Qt亦提供了几种不同的线型
插入改变线型代码:pen.setStyle(Qt::DashDotDotLine);
改变线型后可如下图:
p.drawRect(x轴起点, y轴起点, 长度, 宽度); //绘制矩形
p.drawEllipse(QPoint(x轴起点, y轴起点), x轴半径, y轴半径); //绘制圆形
设置填充
需要在.cpp中包含头文件#include <QBrush>
QBrush brush; //创建一个刷子对象
brush.setColor(Qt::red); //设置粉刷颜色
brush.setStyle(Qt::Dense1Pattern); //设置风格
QT中内置的风格包含以下几种:
窗口重绘
在绘图时需要不断更新窗口进行绘图时(例如绘制实时曲线),可进行以下命令调用:
update();