假设我有2个QTimer
个对象 10,20 作为间隔。并且假设我想使用计时器1 slot1()
信号运行timeout
,使用计时器2运行slot2
。因此slot1
和slot2
的运行顺序如下:
10ms-----20ms-----------30ms----40ms-----
(slot1) (slot1, slot2) (slot1) (slot1, slot2)...
我想在20毫秒之后知道slot1
& slot2
首先执行?以及如何强制事件循环在重叠时运行slot2
然后slot1
。(slot2
对我来说更重要的是按时运行)
答案 0 :(得分:9)
无法保证两个计时器中的插槽可以使用特定订单进行调用。这是因为你是在不同的时间开始它们而且QTimer
最多只有毫秒准确度通过设置:
timer.setTimerType(Qt::PreciseTimer);
默认值为Qt::CoarseTimer
,导致精度在所需间隔的5%范围内。
关于您的情况,如果您想拨打slot2
和slot1
,可以在连接到间隔为10的计时器的插槽中拨打电话:
void myClass::onTriggered()
{
if(count % 2==0)
slot2();
slot1();
count++;
}