根据从导入包中打印的标准输出更新 PyQt 进度条(PyQt5)

Posted

技术标签:

【中文标题】根据从导入包中打印的标准输出更新 PyQt 进度条(PyQt5)【英文标题】:Updating PyQt progressbar based on printed stdout from imported package (PyQt5) 【发布时间】:2017-05-20 05:57:43 【问题描述】:

我对 PyQt5 比较陌生,希望能获得任何指导以实现以下目标。

我正在构建一个 GUI 以在运行各种慢速处理工具的 Python 包之上工作。当前界面是纯文本的:包在循环中运行一些代码并将当前进度百分比完成打印到终端。

我的目标是构建一个 PyQt GUI,将进度显示为进度条。如果我可以将此调用添加到原始处理代码中,这可以简单地使用 QProgressBar.setValue() 来完成,但这是不可能的;相反,我的 GUI 将构建在处理代码的当前文本输出界面之上。

我觉得这应该可以通过某种方式使用线程,但我不确定如何在不影响性能/引入线程不安全操作的情况下拦截对 stdout 的调用。

这可能吗?任何建议都会非常感谢。

【问题讨论】:

【参考方案1】:

我为此写了一些 *** 文档。有时间我会尽快写一些更高级的例子。

Introduction to Progress Bars in PyQt5

希望这会有所帮助:)

编辑

由于堆栈溢出文档的日落,我已将指南移至我的博客。

【讨论】:

以上是关于根据从导入包中打印的标准输出更新 PyQt 进度条(PyQt5)的主要内容,如果未能解决你的问题,请参考以下文章

pyqt使用线程更新进度条

带线程的 PyQt 进度条更新

Pyqt5进度条QProgressBar的使用/多线程更新/按钮美化/图片编码/开机自启动

PyQt5之进度条:QProgressBar

Python-简单打印进度条

Python 3.5,单独窗口中的 pyqt5 进度条 gui