【问题标题】:Properly handling a keyPressEvent in a Subclassed PyQT LineEdit正确处理子类 PyQT LineEdit 中的 keyPressEvent
【发布时间】:2011-02-18 23:13:12
【问题描述】:

所以我有一个 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 中输入文本。我已经尝试捕捉按键,但我不太确定如何处理它们以允许用户继续输入小部件。

我错过了什么?谢谢!

【问题讨论】:

    标签: python pyqt subclassing


    【解决方案1】:

    我猜你想要被覆盖的 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)
    

    希望这会有所帮助,问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多