2013-07-26 128 views
1

覆蓋一些事件在PyQt的的QTextEdit,例如:的PyQt的QTextEdit:檢測改變事件

class myTextEditor(QTextEdit): 
    def keyPressEvent(self,e): 
       print 'key pressed' 
     return super(myTextEditor, self).keyPressEvent(e) 

Howewer的changeEvent中documented here,似乎並沒有工作。這裏是我的代碼

def changeEvent(self,e): 
    print 'change' 
    return super(myTextEditor, self).changeEvent(e) 

沒有錯誤,但事件沒有處理。

任何想法如何在QTextEdit的PyQt中使用changeEvent(當文本改變時)?

回答

5

changeEvent與更改文本編輯的內容無關。它只處理一般的QWidget狀態變化。請參閱this page以獲取與此方法相關的事件列表。

您應該連接到QTextEdit::textChanged()信號來跟蹤文本更改。

+0

以下是我嘗試的:\t \t'self.textChanged.triggered.connect(self.changeText)'。我得到以下內容:'pyqtsignal必須綁定到Qobject,而不是mytexteditor' – edi9999

+0

嘗試刪除'.triggered'。它絕對不應該在那裏。 –

+0

仍然是相同的錯誤信息 – edi9999