我的 pyqt gui 中有一个按钮,单击该按钮会运行一个函数,该函数会执行一些冗长的数学计算。在这个函数中有很多打印语句,例如:
print "finished calculating task1 going on to task2"
因此,通过使用这样的打印语句,我不需要使用进度条来指示程序进度。我在 gui 中添加了一个 QTextEdit 小部件,并将该函数中的所有打印语句替换为:
MyTextEdit.append('message')
where MyTextEdit
是一个 QTextEdit 小部件并且message
是我想要该函数打印的消息。
Example:
MyTextEdit.append('finished calculating task1 going on to task2')
task2 #lengthy second task
MyTextEdit.append('finished calculating task2 going on to task3')
task3 #lengthy third task
当我单击按钮并且函数运行时,该函数内的所有计算都必须完成,然后所有消息都将附加到 QTextEdit 小部件。
我以为每次MyTextEdit.append('message')
执行后,它将立即运行,并且小部件将立即显示该消息,而不是在所有其他消息的最后。
我究竟做错了什么?
我读了这篇文章就有了这样做的想法post
只需拨打电话至QCoreApplication.processEvents每个之后append
你可以获得你的实例QCoreApplication
使用静态方法QCoreApplication.instance
这将要求 Qt 在完成正在执行的任务之前“刷新”您的 GUI,因为该命令处理所有待处理事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)