我在这里需要一些帮助或/和建议,我正在使用 pyQT 制作一个带有 GUI 的 Python 程序,但我需要将实时子进程命令输出到文本浏览器中,这样用户就可以看到是否有任何错误以及消息错误,替代方法是制作一个进度条并中断程序,告诉用户有一个错误,也许保存日志,或任何其他可行的想法,我已经在互联网上找到了类似的东西:
process = Popen([command],stdout=PIPE)
while True:
line = process.stdout.readline()
if not line:
break
QtWidgets.QApplication.processEvents()
self.textBrowser.append(str(line.strip()))
这有点工作,但是,它不会在完成命令时实时打印输出,而且它还会在工作时卡住 GUI。
我遇到的问题的一部分是,还有其他问题,我尝试运行的命令会要求用户在出现继续错误时按 Enter,所以,假设所有这些,没有什么办法吗在 python 程序中嵌入终端或打开一个新终端并在那里启动命令?这样用户将看到实时输出和可能的错误,如果有任何错误则按 Enter 继续。
这是针对 Linux 的
有什么想法吗?我将不胜感激任何想法/建议/帮助,谢谢!
最佳答案
考虑将这个长进程放入一个线程中,例如 Qthread
How to make QtGui window process events whenever it is brought forward on the screen?
关于python - 在PythonQT上进行实时输出并将按键输入发送到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60329608/