2012-05-18 7 views
5

मैं जानना चाहता हूं कि मैं पाइसाइड में QProcess द्वारा चलाए गए कमांड के आउटपुट को कैसे कैप्चर कर सकता हूं ताकि इसे प्रदर्शित किया जा सके।मैं PySide में QProcess द्वारा चलाए गए कमांड का आउटपुट कैसे प्राप्त करूं?

उत्तर

1

मैं इस का उपयोग कर समाप्त हो गया:

# Create runner 
    self.runner = QProcess(self) 
    # Make sure newInfo gets all output 
    self.runner.readyReadStandardError.connect(self.newErrInfo) 
    # Run the command 
    self.runner.start(command) 
    # Once it's started set message to Converting 
    self.parentWidget().statusBar().showMessage("Converting.") 
फिर बाद में कक्षा में

:

def newErrInfo(self): 
    newString = str(self.runner.readAllStandardError()) 
    print(newString, end=" ") 

readAllStandardOutput() भी stdout

1
QProcess qp; 
qp.start("Yourcode"); 
qp.waitForFinished(); 
qDebug() << "qp:" << qp.readAll(); 

पढ़ने के लिए रहते हैं आप canReadLine(), readyread(), waitforreadyread() और waitforbyteswritten() जैसे कार्यों का उपयोग कर सकते हैं।

डेटा कार्यों को कैप्चर करने के लिए signal-slot तंत्र में इन कार्यों का उपयोग करें।

+0

नहीं के लिए काम करता है, के बाद आदेश चलना समाप्त कर दिया नहीं। मेरा मतलब है कि आदेश चल रहा है। – polandeer

+0

मैंने अपना जवाब अपडेट किया है। इसे देखें – ScarCode

+0

धन्यवाद। मुझे लगता है कि मुझे एक और जवाब मिला है, हालांकि। – polandeer

संबंधित मुद्दे