【发布时间】:2015-07-16 05:43:06
【问题描述】:
我有 2 个QListWidget 列表对象,第一个在展示主 GUI 之前包含一些数据,第二个在从第一个列表中选择某些内容时填充另一个数据...我正在尝试填充第二个使用多线程列出 100 万个项目,以在该任务正在进行时不冻结主 GUI 窗口。
self.lst1= QtGui.QListWidget(self.groupBox)
self.lst2= QtGui.QListWidget(self.groupBox)
self.lst1.itemSelectionChanged.connect(lambda: self.thread_list_filler(idx = 0))
def thread_list_filler(self, idx):
if idx == 0:
th = Thread(target = self.fill_List2)
th.start()
def fill_List2(self):
self.lst2.clear()
for i in range(1,1000000+1):
self.lst2.addItem(str(i))
每次按下lst1 中的某个项目时,GUI 都会崩溃,这是什么问题以及如何避免这种情况?
【问题讨论】:
-
你没有发布
thread_list_filler方法,我们怎么知道哪里出了问题? -
@laike9m 我的错,打错了
-
还有
self.fillList2? -
我很遗憾 ;( 还有 1 个错字
-
我不熟悉QT,但是你确定你的lst2可以容纳1000000个项目吗?尝试将它减少到 10,看看它是否仍然给你错误。
标签: python multithreading user-interface pyqt