在Qt延迟绘画

时间:2018-02-28 16:59:28

标签: qt real-time paint

我正在Qt中构建一个实时系统。每隔20毫秒,我需要在QFrame中绘制5个点,以使信号的绘制看起来像实时。当我仅在QFrame中绘制信号时,对paintEvent()的调用以所需频率20 ms完成。但是,当我专注于另一个QWidget或当我显示另一个窗口时(换句话说,当我执行另一个不太简单的绘画动作时)对paintEvent()的调用开始减慢并且信号的样本是积累。

对函数paintEvent()的调用是每隔20 ms对update()的函数QFrame的调用。在Qt中,你不能将涂漆的gui分成线。因此,对paintEvent()的调用在与调用gui中绘制的其他操作的函数的调用相同的线程中运行。这导致当聚焦另一个QWidget时,当与QWidget中的框绘制相关联的处理被延迟时,绘制信号的事件被延迟。

问题在于是否有任何方法可以使事件绘制信号优先级,因此paintEvent()以相同的频率被调用,无论gui中的内容是什么。我使用重绘而不是更新,因为在Qt的帮助下它表示重绘直接调用paintEvent(),但结果是灾难性的。

任何其他想法都会有很大的帮助。

0 个答案:

没有答案