我可以使用 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" 和单次定时器之间没有区别——除了这个标志。每次定时器超时,它检查单次标志。如果已设置,计时器将自行注销,因此在您重新启动它之前不会再次触发。