0

所以假设你有很多东西要绘制,采样时间为 10 毫秒,即 9 个图表/图形(基于 qcustomplot 库)和一个 GLWidget。现在所有的计算,我的意思是数学,都是在一个单独的线程中执行的,但是像“填充 #1 图表的数组”或“清理图表”这样的指令是在 GUI 线程中执行的(显然以 10 毫秒的速度) .

我的问题是,基本上,由于绘图的频率很高,按钮变得无响应。

现在我的问题是:有没有办法提高我的代码的性能?我想避免每 50 毫秒而不是每 10 毫秒绘制一次。可能的解决方案是使用 qApp->processEvents(); ? 有没有更优雅的方式?

4

2 回答 2

0

以 10 毫秒/每个样本的速度绘制任何东西是没有意义的。仅仅因为眼睛无法处理这个。你可以使用(如评论中提到的)“双缓冲”并渲染你需要的一切在单独的线程上显示并每秒刷新图像 100 次,但同样没有任何理由保持如此高的帧速率..

于 2015-05-31T16:45:00.567 回答
0

如果您希望 GUI 响应更快,请QCoreApplication::processEvents();在占用大量 CPU 周期的任何代码中定期调用。您需要#include <QCoreApplication>在任何模块中进行调用。顺便说一下,由于额外的函数调用,这实际上会损害性能,但它会使 GUI 更具响应性,这可能会带来更好的性能外观(具有讽刺意味的是)。

于 2015-05-31T16:57:20.517 回答