[讨论] 利用QT5绘图

郑小气聋子   2015-8-7 21:46 楼主
现有个目的:用QT应用程序调用ADC驱动函数,得到了采样值,需要显示在屏幕上面。一种是利用LCD控件直接实时显示数字,这一点已经做好了;还有一种是将得到的结果绘制在一个坐标系中,得到ADC的采样曲线图。

因为用QPaint每次执行一次PaintEvent的时候,都是讲上一次的绘图结果清除了重新绘制的(不知道有没有说错额,看书看得不够深,请不要打我),所以要显示之前的采样结果的话,会遇到麻烦。

我想到的一种办法是:设置一个静态的数组,每次采样一个结果,就存储在数组中(分别存在1,2,3,,,的位置),这样就凑齐了之前的采样数据,然后在每次绘图的时候,将之前绘制过的图重新绘制一遍,并且绘制本次的采样结果(用的是drawline的方式,绘制数组中相邻的两个点,时间轴用的是定时器 timer 定时触发变量 i 自加的方式),这样子确实可以绘制出一条曲线。

可是有几个问题:

1.在我打开定时器了后来暂停绘制曲线(暂停采样数据)了之后,重新开启定时器的时候,触摸屏上会立即出现一小段曲线(给人的感觉是在我停止采样的时候暗地里采样并保留的数据),而且还是连续着我停止采样的时候的那段曲线(后来用正弦曲线作为测试输入也是一样的结果),这一点不太理解;

2.在绘制图形的时候,我点击触摸屏的空白处,会对采样结果(曲线)造成很大的影响,曲线立即上升或者下降;

3.开发板上的一个稳压芯片会发热比较厉害,而且屏幕也跟着发热(能感受得到有发热)。这一点可能是因为我绘制曲线的时候,需要的缓存量比较大,芯片工作量太大?

希望得到高人前辈指点迷津

    ADC_Griph.zip (2015-8-7 21:45 上传)

    4.68 KB, 下载次数: 16

    ADC绘图代码

回复评论 (14)

一不小心忘了问(其实是因为打字太多,搞忘记的):有没有什么更好的办法来做类似的这种绘图,效率高或者节省空间
点赞  2015-8-7 21:53
干嘛自己画,累死,有很多控件的,网上找找一堆堆~
construction complete!
点赞  2015-8-8 09:03
引用: zqjqq88 发表于 2015-8-8 09:03
干嘛自己画,累死,有很多控件的,网上找找一堆堆~

这个,,,我还只是接触QT不太久,不太会用简便的方法。
点赞  2015-8-8 15:47
非常感谢楼主,最近正在学相关方面的知识,遇到一些问题,正好楼主在这里做了详细的分析和说明,给我们提供了一些解决问题的思路和方法,我要向楼主学习,楼主真棒~~
点赞  2015-8-11 16:10
引用: lb1229305710 发表于 2015-8-11 16:10
非常感谢楼主,最近正在学相关方面的知识,遇到一些问题,正好楼主在这里做了详细的分析和说明,给我们提供 ...

但是我这里是想求教的,因为感觉这种思路做不好。
点赞  2015-8-11 21:31
qt中有一个专门绘图的库,还挺好用的  QCustomPlot 可以试试看额
点赞  2015-8-25 13:20
楼主,我这几天也在做电压采样然后用坐标显示曲线,直接用QWT吧,很好用 对于第三点,这应该是硬件问题了,做硬件时应该要考滤到并留有足够的余量啊 本帖最后由 石玉 于 2015-8-25 20:44 编辑
点赞  2015-8-25 20:40
引用: 247153481 发表于 2015-8-25 13:20
qt中有一个专门绘图的库,还挺好用的  QCustomPlot 可以试试看额

我下载的qcustomplot在linux下编译通不过,提示qcustomplot.h和qcustomplot.cpp有问题,但windows下的QT5是可以通过并运行的。并且在windows环境下编译之后生成的exe文件过一会儿就被360提醒有特洛伊木马病毒,也是蛮醉的。
  • qcustomplot编译问题.png
点赞  2015-9-7 21:59
引用: 石玉 发表于 2015-8-25 20:40
楼主,我这几天也在做电压采样然后用坐标显示曲线,直接用QWT吧,很好用
对于第三点,这应该是硬件问题了 ...

按照博客上说的,但是在qdesigner里面还是没有显示qwt的控件,最要命的是里面说的路径我电脑安装路径里面根本就没有。所以就弃了去弄qcustomplot了
点赞  2015-9-7 22:01
引用: 郑小气聋子 发表于 2015-9-7 22:01
按照博客上说的,但是在qdesigner里面还是没有显示qwt的控件,最要命的是里面说的路径我电脑安装路径里面 ...

好像有一个文件夹没有,自已建一个
点赞  2015-9-7 22:56
引用: 郑小气聋子 发表于 2015-9-7 21:59
我下载的qcustomplot在linux下编译通不过,提示qcustomplot.h和qcustomplot.cpp有问题,但windows下的QT5 ...

不会吧,这么多问题。看提示主要是说变量未定义,你可能需要看看源码,会不会是头文件没有没有包含等等原因哈。
你可以试试使用qtcreater嘛
点赞  2015-9-8 08:56


那个啥,暂时没分再分给你们了,本来说好的给1000,,,不好意思,先欠着,以此为字据,划字签押
点赞  2015-9-8 16:30
引用: 辛昕 发表于 2015-9-8 16:30
那个啥,暂时没分再分给你们了,本来说好的给1000,,,不好意思,先欠着,以此为字据,划字签押

什么分?说得我莫名其妙了
点赞  2015-9-8 19:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复