【发布时间】:2011-12-18 01:32:27
【问题描述】:
我有一个双端队列类型列表(队列),我想在 QTextEdit 中显示和更新它。 MyForm 类中有一个函数 uuenda_kama 应该执行此操作(以及其他一些 s***)。当 textEdit 为空时,这个函数的第一次传递,它就像一个魅力,所有必要的字段都被更新了。但是在第二遍时,由于添加了一些文本,它崩溃了,让我面对一个 Visual Studio 调试器。 尝试评论不同的部分,结果发现“self.ui.textEdit.clear()”行导致了这种情况。它有什么问题,为什么它在第一次通过?我能做些什么来修复它? 我现在拥有的代码:
class MyForm(QtGui.QMainWindow):
...
def uuenda_kama(self):
while True:
...
if vana_que != list(que):
self.ui.textEdit.clear()
for i in que:
self.ui.textEdit.append(i)
vana_que = list(que)
sleep(1)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyForm()
uuendamine = Thread(target=myapp.uuenda_kama)
uuendamine.start()
myapp.show()
sys.exit(app.exec_())
【问题讨论】:
-
你为什么要使用标准的 python 线程来运行一个循环来调用你的 qt 小部件?这对我来说看起来不对。
-
因为我觉得它没有错?起初它似乎工作得很好。会试试你的小费!
标签: python crash pyqt4 qtextedit