为了做一个调节控制轴的上位机软件。

主要用到了QT chart, 并且大量学习内置的example,主要包括 QLineSeries、QSplineSeries,一个样条曲线和一个折线。

其中白色显示最为重要的RMS曲线,与黑色背景形成最鲜明对比。

还有一个QAreaSeries为了显示两个意义相同的位置信息(实际位置和设定位置),以亮蓝线表示实际位置,暗蓝色表示设定位置,中间的透明蓝表示两线围成的区域。

还有一个QStackedBarSeries,折叠柱状图,我的想法是设计红色为正误差,绿色为负误差,类似于股票的涨跌,其中柱状图包络线为实际值,并且整图来看,由于误差的累计在pid中是有所含义的,红绿色面积大小比较显眼。

还设置了多y轴,个人认为这是我设计最全的一个图了:各个颜色和图类分别表示不同的含义,我本想将左侧的红绿色y轴合二为一,但不太会且有bug,故放弃。

在图中还有点击图例的交互:实现图例闪烁和曲线现隐。

以及鼠标hover在scatter点上的显示反应。

image-20220627204728330

接下来还需要做协议的解析、动态调整y轴的范围、计算error值。计算rms值。

image-20220627223625218

最终经过调试完善项目界面如上图所示。

还添加了双轴双图显示、关掉界面再打开的文本框数据缓存功能、文本框重要数据的实时显示、qt chart的每隔一段时间更新画图、保存为csv文件的保存功能、status状态栏的qt组件控制、拖动条设置图像更新频率等功能。

源码已上传至github上。


该代码前期耗费两周研究qt chart的诸多显示效果,结合项目实际意义设计最佳画图方案。后期结合望远镜实时数据,添加诸多功能。


2022/6/27 还花时间修复了这半年来blog的一些问题。