Search code examples
pythonconsoleqwidgethttp-redirect

How to Redirect a Python Console output to a QTextBox


I'm working on developing a GUI for the recompilation of Linux kernel. For this I need to implement 4-5 Linux commands from Python. I use Qt as GUI designer. I have successfully implemented the commands using os.system() call. But the output is obtained at the console. The real problem is the output of command is a listing that takes almost 20-25 min continuous printing. How we can transfer this console output to a text box designed in Qt. Can any one help me to implement the setSource() operation in Qt using source as the live console outputs.


Solution

  • 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()))
    

    This did the work quite good for me. thank you all.