2011-02-18 80 views
4

所以我有,我要趕在移位鍵擊的QLineEdit的妥善處理一個keyPressEvent在子類PyQt的LineEdit

這裏是我的代碼:

class NoteText(QtGui.QLineEdit): 
    def __init__(self, parent): 
     super (NoteText, self).__init__(parent) 

    def keyPressEvent(self, event): 
     if (event.modifiers() & QtCore.Qt.ShiftModifier): 
      self.shift = True 
      print 'Shift!' 

正如您可以猜到,我能趕上shift鍵,但是不能將文本輸入到LineEdit中。我已經嘗試抓取按鍵,但我不確定如何處理它們以允許用戶繼續鍵入該小部件。

我錯過了什麼?謝謝!

回答

6

我想你想你應該調用基類實現重寫keyPressEvent方法的默認行爲,水木清華這樣的:

def keyPressEvent(self, event): 
    if (event.modifiers() & QtCore.Qt.ShiftModifier): 
     self.shift = True 
     print 'Shift!' 
    # call base class keyPressEvent 
    QtGui.QLineEdit.keyPressEvent(self, event) 

希望這會有所幫助,至於

+0

完美,謝謝! – Cryptite 2011-02-21 20:10:52