【发布时间】:2019-04-22 05:54:40
【问题描述】:
我正在尝试找到一种方法来获取 pyqt 应用程序中进度条的结果/演变以及其他打印,例如在 QPlainTextEdit 小部件中。
我面临的问题是,进度条可以使用一些更高级的回车,甚至更高级的光标定位,这些大多不被 treams 支持。
我试过io.StringIO,但\r 保持原样。
import io
from tqdm import tqdm
s = io.StringIO()
for i in tqdm(range(3), file=s):
sleep(.1)
输出:
s.getvalue()
Out[24]: '\n\r 0%| | 0/3 [00:00<?, ?it/s]\x1b[A\n\r 33%|###3 | 1/3 [00:00<00:00, 9.99it/s]\x1b[A\n\r 67%|######6 | 2/3 [00:00<00:00, 9.98it/s]\x1b[A\n\r100%|##########| 3/3 [00:00<00:00, 9.98it/s]\x1b[A\n\x1b[A'
翻译成:
print(s.getvalue())
0%| | 0/3 [00:00<?, ?it/s]
33%|###3 | 1/3 [00:00<00:00, 9.99it/s]
67%|######6 | 2/3 [00:00<00:00, 9.98it/s]
100%|##########| 3/3 [00:00<00:00, 9.98it/s]
明确地说,在我的输出中,我不希望每次 tqdm 更新一行,而只希望当前状态,因为它将打印在命令行上。
知道怎么做吗? 谢谢!
【问题讨论】:
-
什么是
text widget? -
任何显示多行文本的小部件,例如 QPlainTextEdit
-
是的,当然,那是为了演示。
-
感谢您的帮助!我想要的内容与我在标准输出中看到的内容基本相同,但在一个字符串中,或者我可以在 qt 小部件中显示的任何内容。
标签: python pyqt pyqt5 tqdm qplaintextedit