所以我有一个QLineEdit,我想抓住一个Shift键。
这是我的代码:
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中输入文字。我已经尝试过捕捉按键,但我不确定如何处理它们以允许用户继续输入小部件。
我错过了什么?谢谢!
答案 0 :(得分: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)
希望这有帮助,尊重