在子类PyQT LineEdi中正确处理keypress事件

2024-09-30 01:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想按一下键。在

我的代码是:

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中输入文本。我尝试过捕捉按键,但是我不确定如何使用它们来允许用户继续输入小部件。在

我错过了什么?谢谢!在


Tags: 代码selfeventifshiftinitdefclass
1条回答
网友
1楼 · 发布于 2024-09-30 01:30:04

我想您需要重写的keyPressEvent方法的默认行为,您应该调用基类实现,smth如下所示:

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

希望这对你有帮助,谢谢

相关问题 更多 >

    热门问题