如何在 PySide 中强制重绘?
How can I force a repaint in PySide?
我认为 PySide 小部件存在重绘问题。我如何强制小部件(或整个 window/app)在方法中间重绘?
def on_button_clicked():
window.resultTextEdit.setPlainText("Parsing file...")
# indicate delay, this message should be visible while parsing
# but in fact it never appears
# can I force a repaint here?
result = parse() # (takes a little while)
window.resultTextEdit.setPlainText(result)
# display the results once done
app = QApplication(sys.argv)
window = QtUiTools.QUiLoader().load("application.ui")
window.userButton.clicked.connect(on_button_clicked)
window.show()
sys.exit(app.exec_())
对于任何需要在事件中间重新绘制的小部件,您只需调用 widget.repaint()
。请注意,UI 的其余部分在重绘期间没有响应(这对于一次性调用没问题,但如果您重复重绘则不行)。
(感谢梅尔指点我)
我认为 PySide 小部件存在重绘问题。我如何强制小部件(或整个 window/app)在方法中间重绘?
def on_button_clicked():
window.resultTextEdit.setPlainText("Parsing file...")
# indicate delay, this message should be visible while parsing
# but in fact it never appears
# can I force a repaint here?
result = parse() # (takes a little while)
window.resultTextEdit.setPlainText(result)
# display the results once done
app = QApplication(sys.argv)
window = QtUiTools.QUiLoader().load("application.ui")
window.userButton.clicked.connect(on_button_clicked)
window.show()
sys.exit(app.exec_())
对于任何需要在事件中间重新绘制的小部件,您只需调用 widget.repaint()
。请注意,UI 的其余部分在重绘期间没有响应(这对于一次性调用没问题,但如果您重复重绘则不行)。
(感谢梅尔指点我)