繁体   English   中英

Pyside setText()没有更新QLabel

[英]Pyside setText() not updating QLabel

我有以下内容:

 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时进行处理)。

可能的解决方案:

  • 使用QTimer重复调用更新文本的函数(这是首选解决方案)
  • 每次调用setText后调用testText.repaint()
  • 每次调用setText后调用QApplication.processEvents()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM