Qt5 QCustomPlot。实时大图
Posted
技术标签:
【中文标题】Qt5 QCustomPlot。实时大图【英文标题】:Qt5 QCustomPlot. Large graph in real time 【发布时间】:2015-12-09 13:00:07 【问题描述】:我目前正在开发一个实时绘制来自 ADC 的数据的应用程序。在某些情况下,我必须绘制大约 150k 点,这需要一些时间。 所以问题是数据到达的频率可能比我绘制它的频率高。
我不需要高帧率。我也可以努力跳过一些数据。
我正在使用:操作系统 Windows 7、Qt 5.5、QCustomPlot。
所以问题是:在之前的重新绘制完成之前,我究竟如何防止重新绘制以保持应用程序响应?
谢谢。
【问题讨论】:
【参考方案1】:您可以有一个插槽,它只接收新到达的数据并将它们存储在像QVector
这样的数据结构中,并使用QTimer
以特定间隔定期使用接收到的数据更新绘图。
所以接收数据的槽是这样的:
void receiveData(QVector<double> data)
receivedData.append(data);
而与定时器的timeOut
信号以一定间隔连接的槽是这样的:
void receiveData()
plot->graph()->setData(keyVector, receivedData);
plot->replot();
这样,绘图仅在特定时间间隔内更新,与输入数据的速率无关。
【讨论】:
以上是关于Qt5 QCustomPlot。实时大图的主要内容,如果未能解决你的问题,请参考以下文章
QT应用编程: 使用qcustomplot显示动态曲线设计心电图显示页面