如何让PyQT程序不断刷新一个小部件,始终提供最新的价值?

时间:2011-10-09 01:23:31

标签: python pyqt

我正在学习用PyQT4和Python编程。我正在尝试编写一个简单的应用程序,它将在QLCD小部件中显示当前的CPU使用情况。对于CPU使用情况,我使用的是psutils模块。

问题是CPU使用率不是一直都在更新 - 它只记录应用程序启动时的CPU使用率(我猜),然后就停止了。所以,我正在寻找某种类似的循环,希望不会占用过多的CPU能力。

这是我到目前为止所做的:

self.wpCpuUsage.display(cpu_percent(interval=1))

,这是在QMainWindow类的 __ init __ 内。

我已经尝试将它放在for循环中,但随后它迭代它,基本上等待它迭代然后执行程序。

帮助?

1 个答案:

答案 0 :(得分:7)

您可以使用QTimer [reference]对象进行回调。

这样的事情应该有效:

def call_this():
    self.wpCpuUsage.display(cpu_percent(interval=1))

self.my_timer = QtCore.QTimer()
self.my_timer.timeout.connect(call_this)
self.my_timer.start(1000) #1 second interval