繁体   English   中英

如何在PySide中强制重画?

[英]How can I force a repaint in PySide?

我有一个PySide小部件的重画问题。 如何强制窗口小部件(或整个窗口/应用程序)在方法中间重新绘制?

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的其余部分在重绘期间无响应(这对于一次调用是好的,但如果您反复重绘则不会)。

(感谢Mel指出我指向https://stackoverflow.com/a/11806126/4720935

暂无
暂无

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

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