Python 动态更新QLabel-pyqt
我有点问题。我正在尝试制作一个监控软件,可以监控一些电压和其他东西。我正在使用Qt4设计器和pyqt来创建我的UI 我的代码结构如下(每一个都是一个模块): 单击go按钮-->启动集线器-->连接到设备并返回信息数组-->使用信息并在各种QLabel上显示适当的值 我使用self.label.setText(这里的数据)设置QLabel 我现在遇到的问题是,我正在尝试让go按钮启动一个循环,该循环每隔4秒左右重复调用start hub模块(该模块将从设备获取信息,然后调用一个模块将该信息打印到QLabel) 作为测试,我连续调用该函数3-4次,中间是time.sleep(4)。我发现UI仅在上次调用start hub后更新 我很确定问题在于UI只有在没有任何处理的情况下才会更新。但我不确定如何在每次迭代后强制更新所有QLabel。我尝试过self.label.repaint(),但没有任何效果Python 动态更新QLabel-pyqt,python,qt,pyqt,Python,Qt,Pyqt,我有点问题。我正在尝试制作一个监控软件,可以监控一些电压和其他东西。我正在使用Qt4设计器和pyqt来创建我的UI 我的代码结构如下(每一个都是一个模块): 单击go按钮-->启动集线器-->连接到设备并返回信息数组-->使用信息并在各种QLabel上显示适当的值 我使用self.label.setText(这里的数据)设置QLabel 我现在遇到的问题是,我正在尝试让go按钮启动一个循环,该循环每隔4秒左右重复调用start hub模块(该模块将从设备获取信息,然后调用一个模块将该信息打印到Q
有人能帮忙吗?我猜您可能会将所有任务(3-4次集线器模块调用、time.sleep和QLabels setText)放入该UI更新函数中,而不是这样做,您应该将长时间运行的任务包装到一个单独的线程中:
import threading
def LongRunningTask(self):
for i in range(4):
hub_module_call
time.sleep(4)
self.label.setText
def OnButton(self, event):
# Click go button
thread = threading.Thread(target=self.LongRunningTask)
thread.start()
我猜您可能会将所有任务(3-4次集线器模块调用、time.sleep和QLabels setText)放入该UI更新函数中,而不是这样做,您应该将长时间运行的任务包装到一个单独的线程中:
import threading
def LongRunningTask(self):
for i in range(4):
hub_module_call
time.sleep(4)
self.label.setText
def OnButton(self, event):
# Click go button
thread = threading.Thread(target=self.LongRunningTask)
thread.start()