我可以使用 singleShot(true) 使 运行 QTimer 在下一枪后停止吗?
Can I use singleShot(true) to make a running QTimer to stop after next shot?
我有一个QTimer
触发周期性事件。
我不想直接停止计时器,因为我想将一些特殊信号同步到最后一个事件。
我可以通过在这个QTimer
上设置setSingleShot(true)
来实现它,让它的下一个镜头是单镜头,下一个镜头后计时器停止吗?
编辑:
它似乎工作。但 setSingleShot(true)
似乎不是原子的:我有时会在计时器停止前观察到 2 次射击。
是的。是的你可以。事实上, "regular" 和单次定时器之间没有区别——除了这个标志。每次定时器超时,它检查单次标志。如果已设置,计时器将自行注销,因此在您重新启动它之前不会再次触发。
我有一个QTimer
触发周期性事件。
我不想直接停止计时器,因为我想将一些特殊信号同步到最后一个事件。
我可以通过在这个QTimer
上设置setSingleShot(true)
来实现它,让它的下一个镜头是单镜头,下一个镜头后计时器停止吗?
编辑:
它似乎工作。但 setSingleShot(true)
似乎不是原子的:我有时会在计时器停止前观察到 2 次射击。
是的。是的你可以。事实上, "regular" 和单次定时器之间没有区别——除了这个标志。每次定时器超时,它检查单次标志。如果已设置,计时器将自行注销,因此在您重新启动它之前不会再次触发。