PyQt / PySide keyPressEvent 默认行为

Posted

技术标签:

【中文标题】PyQt / PySide keyPressEvent 默认行为【英文标题】:PyQt / PySide keyPressEvent default behaviour 【发布时间】:2013-09-02 14:36:48 【问题描述】:

我已将 QPlainTextEdit 子类化并希望捕获某些键。如果按下的键不是其中之一,请继续使用默认行为(例如添加文本)。

这可能吗,还是我也必须编程?

例子:

def keyPressEvent(self, event):
        if event.key() in [16777235, 16777237, 16777234, 16777236, 16777220]: # Up, down, left, right, return.
            event.ignore()
        else:
            event.doDefault()

【问题讨论】:

【参考方案1】:

使用超级完成:

def keyPressEvent(self, event):
        if event.key() in [16777235, 16777237, 16777234, 16777236, 16777220]: # Up, down, left, right, return.
            event.ignore()
        else:
            super(MyTextEdit, self).keyPressEvent(event)

【讨论】:

以上是关于PyQt / PySide keyPressEvent 默认行为的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 keyPressEvent 不适用于终止 App Qt Designer

释放按钮后调用的 keyPressEvent

Python/pyside,pyqt(pyside,pyqt optional): 控制文本选择的函数

为 keyPressEvent 子类化 QTextEdit 是唯一的方法吗?

使用 PySide / PyQt 的问题

PySide/PyQt:PointingHandCursor 食谱?