需求:做一个折线图,y轴为温度,x轴为时间,点数据从数据库中获取,鼠标在折线图中悬浮时显示对应点的数据。
我是在Node1_Temperature文件里写折线图。
1、下载安装第三方库QCustomPlot
官方下载地址: https://www.qcustomplot.com/index.php/download
需要注意的地方是2.0.1和1.3.2版本有些内置函数有很大变化,甚至是直接取消了。比如当你x轴显示的字太长放不下,想要旋转字体的时候,1.3.2版本里有一个内置函数setTickLabelRotation()可以实现这种效果,但是2.0.1版本就没有这个函数。个人来说比较习惯1.3.2版本。
下载好了之后会得到一个压缩包,解压后会得到两个文件:qcustomplot.cpp和qcustomplot.h,将这两个文件复制到项目所在文件夹中。
然后在你要写折线图的页面文件的.h文件里#include "qcustomplot.h"即可
2、打开项目的.pro文件,添加下图所示代码
3、在Node1_Temperature.ui里添加一个widget控件,右键将其提升为QCustomPlot类型,这个widget就相当于画布
需要注意的是,这个widget被提升为QCustomPlot后,其他的控件就不能在上面显示了,默认折线图坐标的优先级是最高的,如果除了折线图还想要显示另外的一些控件,可以在该widget以外对的其他区域多加widget用来包含其他控件。
代码部分:写了注释,应该都能看懂
(1)Node1_Temperature.h文件:</