我有以下内容:
self.testTxt = QtGui.QLabel("0")
.
.
for i in range(10):
sleep(1)
self.testTxt.setText(unicode(i))
但 QLabel 直到循环结束才会更新
我试过了:
self.processEvents()
self.testTxt.update()
但无济于事。
有谁碰巧知道为什么?
提前致谢
文本框不会更新,因为程序被绑定在 for 循环中,因此永远不会回到 Qt 的事件循环来重绘小部件。调用 testTxt.update() 无济于事,因为正如QWidget 文档所述,update() 只是为下一次运行事件循环时安排重绘(无论如何,当您调用 setText 时会处理这一点)。
可能的解决方案: