我有以下内容:
self.testTxt = QtGui.QLabel("0")
.
.
for i in range(10):
sleep(1)
self.testTxt.setText(unicode(i))
但是QLabel直到循环结束才会更新
我试过了:
self.processEvents()
self.testTxt.update()
但无济于事。
有谁碰巧知道为什么?
提前致谢
答案 0 :(得分:2)
文本框不会更新,因为程序在for循环中被绑定,因此永远不会回到Qt的事件循环来重绘小部件。调用testTxt.update()没有帮助,因为,正如QWidget documentation状态,update()只是计划重新绘制,以便下次运行事件循环(并且这需要处理无论如何你调用setText)。
可能的解决方案: