python - 在PythonQT上进行实时输出并将按键输入发送到命令

标签 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 的

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

最佳答案

关于python - 在PythonQT上进行实时输出并将按键输入发送到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60329608/

相关文章:

python - 在子进程中,某些命令有效,但 Mac 终端中的其他命令无效

java - 在 Java 中打印带 2 个小数位的整数

python - R 到 Python/Numpy 线性回归曲线

python - 从递归生成器函数引发异常

python - 将数据帧值转换为一维列表

python - 如何使我的 python 脚本不会因错误的 Popen 命令而崩溃?

python - 正则表达式: How to name a group using match result

python - 如何包装用于自动化的 windows 交互式控制台程序

linux - 从 Linux 终端的标准输出中删除 "bad address"错误

java - 数组列表打印奇怪的输出