ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – Pyqt:’动态’从函数追加到qtextedit

2019-06-30 00:54:46  阅读:335  来源: 互联网

标签:python dynamic stdout pyqt4 qtextedit


我的pyqt gui中有一个按钮,当单击时会运行一个执行一些冗长的数学计算的函数.在这个函数里面有很多打印语句,如:

print "finished calculating task1 going on to task2"

因此,通过使用类似的打印语句,我不需要让我们说一个进度条,例如表示程序进度.我在我的gui中添加了一个QTextEdit小部件,并将该函数中的所有print语句替换为:

MyTextEdit.append( ‘信息’)

其中MyTextEdit是一个QTextEdit小部件,消息是我想要打印的功能的消息.

例:

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

您可以使用静态方法QCoreApplication.instance获取QCoreApplication的实例

这将要求Qt在完成正在执行的任务之前“刷新”你的gui,因为该命令处理所有未决事件.

标签:python,dynamic,stdout,pyqt4,qtextedit
来源: https://codeday.me/bug/20190630/1331488.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有