2010-01-14 12 views
0

我有一個QTextEdit ...當按鈕調用'CleanComments'清除用戶完成的輸入時,它與'clear()'一起使用。下面是代碼:Qt Python:QTextEdit - 顯示輸入

def CleanComments(self): 
    self.textEditInput.clear() 

def showInput(self): 
    print "show input: %s" % self.textEditInput.show() 

def buildEditInput(self): 
    self.textEditInput = QtGui.QTextEdit(self.boxForm) 
    self.textEditInput.setGeometry(QtCore.QRect(10, 300, 500, 100)) 

唯一的問題是,當「showInput」被稱爲使用上顯示的QTextEdit內容「顯示()」,它給「」節目輸入:「無」「」。那麼,這裏錯過了什麼?

所有的意見和建議,非常感謝。

回答

3

爲了得到一個QTextEdit的內容作爲一個簡單的字符串,使用toPlainText()方法。

print "show input: %s" % self.textEditInput.toPlainText() 

還有toHtml()方法。如需更多選擇,您可以直接使用從QTextEdit.document()

+0

由於'toPlainText()'返回一個'QString',所以你可能需要將它轉換爲Python以便打印文本: 'print「show input:%s」%str(self.textEditInput.toPlainText())' – 2010-01-14 13:31:01

+0

Nah,PyQt實現了像'__str__'這樣的'魔術'python方法,你應該沒問題。 – gnud 2010-01-14 18:06:02

+0

就是這樣......很好地工作。感謝GNUD和COONJ - 它做到了! – ThreaderSlash 2010-01-14 21:30:20

0

您的showInput方法正在從show()方法打印返回值,該方法返回None。如果你想打印在編輯當前的文本,使用:從部件

print "show input: %s" % self.textEditInput.text() 
0

方法顯示用於顯示在屏幕上的小部件。例如,如果您有主窗口,則調用show將其顯示給用戶。如果您希望從某些編輯中檢索數據,無論是行編輯還是文本編輯,都應該使用text()方法。就像這樣:

def showInput(self): 
    print "show input: %s" % self.textEditInput.text() 
+0

QTextEdit不提供text()方法。 QLineEdit的確如此。但toPlainTExt()或toHtml()是你的選擇。 – 2014-07-24 20:17:23