Cry*_*ite 4 python pyqt subclassing
所以我有一个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!'
Run Code Online (Sandbox Code Playgroud)
你可以猜到,我可以捕捉shift键,但是你不能在LineEdit中输入文本.我试过捕捉按键,但我不确定如何处理它们以允许用户继续键入小部件.
我错过了什么?谢谢!
我想你想要重写的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)
Run Code Online (Sandbox Code Playgroud)
希望这有帮助,问候