在PySide中强制QTimer()超时

k3it

我有一个pySide应用程序,它使用QTimer每分钟刷新一次其状态。在某些情况下,我需要强制立即更新,然后重新启动计时器

self.timer = QTimer()
self.timer.timeout.connect(self._update_status)
self.timer.start(60 * 1000)

有什么方法可以强制计时器到期并发出超时信号?

ekhumoro

最干净的解决方案似乎就是这样:

        self.timer.start() # restart the timer
        self.timer.timeout.emit() # force an immediate update

也可以通过调用来强制立即更新setInterval(1),但这有一个缺点,那就是您随后需要在连接到信号的插槽中再次重置计时器间隔

        self.timer.setInterval(1) # force an immediate update

    def _update_status(self):
        ...
        if self.timer.interval() == 1:
            self.timer.setInterval(60 * 1000) # reset the interval

(请注意,如果使用间隔,则Qt仅在清除事件队列后才会发出超时信号。因此,严格来说,setInterval(0)不一定强制立即更新)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章