先放效果图

写在前面
这片文章是之前文章思路上来的,之前的这篇文章是在项目初期,刚开始使用QtCharts时候写的,当时比较匆忙,没有太多时间编写一个Demo,代码也是从项目中抠出来的,难免会有不足之处,现在看起来有点晦涩,可能对大家的帮助不大,所以想进行一定修改,让大家能够更好的使用Qt自带的折线图,实现更多功能。
本来是想在之前的文章上进行修改,但是毕竟也是以前的一个印记。这次就在上那篇文章的基础上,试图让整个流程更加清楚,增加一些新内容,也会配上Demo的下载地址。
另外,本Demo的开发环境是VS2017社区版+Qt 5.11.2,QtChart的添加方式和使用Qt Creator略有不同。(本人觉得开发大一点的项目还是VS方便,所以就一直使用的VS进行开发)
为什么要写这片文章
QtCharts常用的时间轴有QValueAxis和QDateTimeAxis,有时候我们需要绘制与时间相关的数据,如与日期相关的天气数据,或者是随分钟变化的传感器数据等,这样就会用到 QDateTimeAxis 坐标轴目前网上的一些例子,以及QT自带的例子,基本都是和日期相关的数据,没有找到坐标轴是分钟、秒的案例,踩了一些坑后,写下这篇文章,希望能够帮助到需要的人。
QtCharts折线图初始化设置
UI设置
记得在生成项目的时候勾选charts(安装Qt的时候记得也要安装这个组件),这样就能正常使用QtCharts,一路next就可以生成我们的项目了。
我们要实现折线图需要利用QChartView,在QChartView中才可以添加QChart。
双击ui文件打开QtDesigner,我们会发现没有现成的QChartView控件。但是问题不大,QChartView是继承于GraphicsView的,所以我们可以通过Qt的一些操作,将GraphicsView变为我们要使用的QChartView。
首先我们拖动一个GraphicsView到右边去,对着添加进去的控件右键,选择提升,然后在弹出窗口,进行下面的操作,确定后我们就可以得到一个QChartView了。
可以看到,右边属性界面我们的graphicsView的类就变为了QChartView
这个时候我们进行编译,是会报错的,大概就是下面这个样子
需要在头文件中添加一个包含,就可以正常使用了
折线图初始化
主要是初始化坐标轴和数据集,以及QChart对象。(我们这里既有左边的Y轴,又有右边的Y轴,如果只是想显示普通一条数据,只需要一个Y轴就可以了)
m_AxisX_Time = new QDateTimeAxis();//时间轴
m_AxisY_Left = new QValueAxis();//左边Y轴
m_AxisY_Right = new QValueAxis();//右边Y轴
m_LeftSeries = new QLineSeries();//折线图数据集
m_RightSeries = new QLineSeries();
m_LineChart = new QChart();//chart对象
其中这个m_Lin