python - 如何将 Python 控制台输出重定向到 QTextBox

标签 python console qwidget redirect

我正在开发用于重新编译 Linux 内核的 GUI。为此,我需要从 Python 执行 4-5 条 Linux 命令。我使用 Qt 作为 GUI 设计器。我已经使用 os.system() 调用成功实现了命令。但是输出是在控制台获得的。真正的问题是命令的输出是一个列表,需要连续打印将近 20-25 分钟。我们如何将此控制台输出传输到 Qt 中设计的文本框。任何人都可以帮助我在 Qt 中使用源代码作为实时控制台输出来实现 setSource() 操作。

最佳答案

self.process = QProcess()
self.connect(self.process, SIGNAL("readyReadStdout()"), self.readOutput)
self.connect(self.process, SIGNAL("readyReadStderr()"), self.readErrors)
tarsourcepath="sudo tar xvpf "+ self.path1
self.process.setArguments(QStringList.split(" ",tarsourcepath))
self.process.start()



def readOutput(self):

    self.textBrowser2.append(QString(self.process.readStdout()))
    if self.process.isRunning()==False:
        self.textBrowser2.append("\n Completed Successfully")




def readErrors(self):
    self.textBrowser2.append("error: " + QString(self.process.readLineStderr()))

这对我来说非常有用。谢谢大家。

关于python - 如何将 Python 控制台输出重定向到 QTextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2859256/

相关文章:

Linux中的C程序: Output Redirection Performance

c++ - 如何动态更改 QMainWindow 的内容

python - "uncaught signal #9"是什么? TextMate、Python、MacOS

python - 关闭 SSH 后如何在远程服务器上运行 python 脚本?

python - 使用 BeautifulSoup 提取数据

java - 将 GUI 添加到现有的基于 Java 控制台的程序

c++ - 如何在运行时显示QT中的字符串列表?

qt - QWidget 当 setMaximumSize 最大化按钮不起作用时

如果找不到匹配项,Python 2.7 将退出一个只有一行的 while 循环

java - 使用界面在后台运行 matlab