假设我有两个QTimer
对象,它们的间隔分别为10、20。再假设我想运行与定时器1信号,并因此运行的秩序与定时器2和是这样的:slot1()
timeout
slot2
slot1
slot2
10ms-----20ms-----------30ms----40ms-----
(slot1) (slot1, slot2) (slot1) (slot1, slot2)...
我想知道20毫秒后首先执行哪个slot1
&slot2
?以及如何强制事件循环运行slot2
,然后slot1
在它们重叠时运行。(slot2
对我而言,按时运行更重要)
不能保证两个计时器中的插槽以特定顺序调用。这是因为您要在不同的时间启动它们,并且QTimer
通过设置以下内容最多也可以达到毫秒精度:
timer.setTimerType(Qt::PreciseTimer);
默认设置是Qt::CoarseTimer
导致精度在所需间隔的5%之内。
关于您的情况,如果要呼叫slot2
并按slot1
顺序,可以在连接到定时器的插槽中以10的间隔呼叫它们:
void myClass::onTriggered()
{
if(count % 2==0)
slot2();
slot1();
count++;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句