我的 PyQt 程序有 2 个小部件(选择文件等),然后是一个显示解析文件结果的主窗口。
该程序非常适合小型样本文件,但是当尝试解析较大的文件时,它会挂起(显示“未响应”),然后在大约 30 秒左右后显示结果。
我想在主窗口打开之前实现一个 QDialog。 QDialog 将有一个进度条,让用户知道主窗口何时打开。
该进度条需要设置为弹出主窗口之前的时间长度。
实现这一点的最佳方法是什么?我看过一些例子,但进度条只是设置为标准化时间,而不是处理(解析)完成时。
我目前有以下打开主窗口的代码。
def openWidgetMain(self):
self.WidgetMain = WidgetMain()
self.WidgetMain.show()
self.close()
该窗口的所有处理都是在它打开时完成的。那么如何连接QProgressBar呢?
将持久的进程放入某种线程中。读这个:http://qt-project.org/doc/qt-5/threads-technologies.html http://qt-project.org/doc/qt-5/threads-technologies.html从该线程发出信号来更新进度条。这样您的应用程序就不会挂起,并且用户可以看到进度。
但是,由您的加载例程决定在进度栏中显示哪个百分比。如果您无法计算准确的百分比,请尝试某种估计(例如,基于文件的大小与文件的处理量)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)