所以假设你有很多东西可以用10ms的采样时间绘制,即9个图表/图表(基于qcustomplot库)和一个GLWidget。现在所有的计算,我的意思是数学,是在一个单独的线程中执行的,而像#34;填充#1图表的数组"或者"清理图表"在GUI线程中执行(显然速度为10ms)。
我的问题是,基本上,由于绘图频率很高,按钮会变得无法响应。
现在我的问题是: 有没有办法提高我的代码的性能?我想避免每50毫秒而不是每10毫秒画一次。可能的解决方案是使用qApp-> processEvents(); ?有更优雅的方式吗?
答案 0 :(得分:0)
没有任何意义可以以每个样本10毫秒的速度绘制任何东西..只是因为眼睛无法处理这个......你可以使用(如评论中所提到的)“双缓冲”并渲染所有内容你需要在一个单独的线程上显示并且每秒刷新一次图像100次,但再次没有任何理由保持如此高的帧速率。
答案 1 :(得分:0)
如果您希望GUI更具响应性,请在占用大量cpu周期的任何代码中定期调用QCoreApplication::processEvents();
。在你调用的任何模块中都需要#include <QCoreApplication>
。顺便说一句,这实际上会因为额外的函数调用而损害性能,但它会使GUI更具响应性,这可能会给出外观更好的表现(具有讽刺意味)。