在PythonQT上实时输出并将键输入发送到命令

时间:2020-02-20 22:41:07

标签: python subprocess output pythonqt

在这里我需要一些帮助或建议,我正在使用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

有什么想法吗?我将不胜感激任何想法/建议/帮助,谢谢!

1 个答案:

答案 0 :(得分:0)