我有一些文本显示的 pyqt gui,这些文本显示通过函数 updateTelemetry() 定期更新
这是我的代码的工作原理。当用户点击按钮时, buttonHandler 被调用。每 10 秒迭代调用一次 updateTelemetry。:
def buttonHandler(self):
self.monitor=true
self.updateTelemetry()
def updateTelemetry(self):
try:
#update values on gui
finally:
if self.monitor:
QtCore.QTimer.singleShot(10000, self.updateTelemetry)
这种方法有效,让我每 10 秒左右获得一次更新。但是,每隔 10 秒,整个 gui 会冻结几秒钟,然后更新。我正在做的事情似乎正在阻止。我不确定这是怎么回事。我以为 qtimer.singleshot 会创建一个单独的线程?
有没有更好的方法来做我正在做的事情?