2014-07-22 97 views
0

我希望我的輸出出現在我的pyqt textedit中,而不是單擊按鈕後的python shell。我不熟悉subprocess或stdout的東西,甚至不知道這是否會涉及到它們。在這裏需要一些幫助。以下是我的部分代碼:如何將打印結果從python shell重定向到qtextedit pyqt?

self.textEdit = QtGui.QTextEdit(Dialog) 
    self.textEdit.setGeometry(QtCore.QRect(20, 200, 431, 241)) 
    self.textEdit.setObjectName(_fromUtf8("textEdit")) 

def readI2C(self): 
    data = i2c.read_byte(0x50) 
    return data 
    self.textEdit.setText(data) 

此代碼不會打印任何內容。我用print data試過了,但是這會在Python shell中打印結果。任何人都可以幫忙

回答

1

return data之前放置此行self.textEdit.setText(data)。一旦你從方法返回值,返回後的行將不會執行。

另外,如果你要使用文本編輯只輸出(不進行編輯)設置self.textEdit.setReadOnly(1)

+0

我把'self.textEdit.setText(數據)'和'自我。 textEdit.setReadOnly(1)在'return data'前面,但現在我收到一個錯誤:'TypeError:QTextEdit.setText(QString):參數1有意外的類型'int'' – Viv91

+0

它意味着'data'是整數類型和方法' setText'需要QString類型。 修復它'self.textEdit.setText(str(data))' – Aleksandar

+0

謝謝!有效! – Viv91