QT5 零基础教你简单窗口绘图

前言

  在实际工程中,许多时候需要绘图操作,例如,在获得一系列数据后,需要把数据绘制成折线图显示在窗口中,那么这时需要用到绘图操作。这篇文章从零基础开始,教你QT绘制图形。


具体步骤

1、首先在.h头文件中建立保护类型绘图事件:

protected:
    void paintEvent(QPaintEvent *);

2、在.cpp中包含#include

3、在.cpp中调用绘图事件:

void Widget::paintEvent(QPaintEvent *)
{
    QPainter p;		//创建绘图对象
    p.begin(this);

    p.drawLine(50,50,150,50);		//给出绘图坐标
}

  绘图坐标需要给出绘图的起点和终点,例如画直线时的构造函数为

p.drawLine(x轴起始坐标,y轴起始坐标,x轴终止坐标,y轴终止坐标);

  以上绘图结果如图示:
QT5 零基础教你简单窗口绘图_第1张图片
  显然,这样画出来的图线并不令人满意。因此,我们可以进一步,用画笔的形式来绘图。

4.在.cpp中包含头文件#include

5.在上述绘图过程中插入画笔

    QPen pen;				                //创建画笔对象
    pen.setWidth(5);	   				    //设定画笔线条宽度
    pen.setColor(QColor(142,16,126));		//设定线条颜色
    p.setPen(pen);			                //把画笔交给画家

  绘图结果如下:
QT5 零基础教你简单窗口绘图_第2张图片
  我们就改变了线条的宽度和颜色。


改变线条颜色

在.cpp中包含头文件#include ,改变线条颜色有两种方式:
  (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调色板。
QT5 零基础教你简单窗口绘图_第3张图片


改变线条线型

  Qt亦提供了几种不同的线型
QT5 零基础教你简单窗口绘图_第4张图片
  插入改变线型代码:pen.setStyle(Qt::DashDotDotLine);
  改变线型后可如下图:
QT5 零基础教你简单窗口绘图_第5张图片

p.drawRect(x轴起点, y轴起点, 长度, 宽度);						//绘制矩形
p.drawEllipse(QPoint(x轴起点, y轴起点), x轴半径, y轴半径);		//绘制圆形

设置填充

  需要在.cpp中包含头文件#include

    QBrush brush;												//创建一个刷子对象
    brush.setColor(Qt::red);									//设置粉刷颜色
    brush.setStyle(Qt::Dense1Pattern);							//设置风格

  QT中内置的风格包含以下几种:
QT5 零基础教你简单窗口绘图_第6张图片


窗口重绘

在绘图时需要不断更新窗口进行绘图时(例如绘制实时曲线),可进行以下命令调用:

update();

你可能感兴趣的:(QT5)