【发布时间】:2018-01-21 18:38:42
【问题描述】:
您好,我已向我的 Thread worker 发送 GUI 链接并直接从 QThread 更新 GUI 信息。喜欢这里:
class Worker(QThread):
def __init__(self, ui):
QThread.__init__(self)
self.running = False
self.ui = ui
def run(self):
self.running = True
while self.running:
info = self.check_info()
rows = len(info)
self.ui.tableWidget.setRowCount(rows)
self.ui.tableWidget.setColumnCount(6)
...
在主QMainWindow 我只是添加
def __init__(self, parent=None):
.......
self.myworker = Worker(self.ui)
.....
这样的解决方案在 PyQt5 中是不是很糟糕?我是 PyQt 的新手。谢谢。如果我的解决方案不好,请帮助我解决它。
【问题讨论】:
-
你不应该在主线程以外的其他线程更新GUI,你必须使用信号和槽将信息从辅助线程发送到主线程。
-
info的类型是什么? -
我可以通过信号发送任何信息,例如我通过执行线程收到的字典列表吗?
-
info是字典列表 -
是的,如果可以的话,但是您需要特定的语法。为什么需要在另一个线程中运行 check_info?
标签: python python-3.x pyqt pyqt5 qthread