如何在PySide / Qt中拦截/重定向击键

时间:2017-10-08 15:59:06

标签: python qt pyside

我在PySide / Qt写一个简单的应用程序。我想要一个应用程序范围的快捷方式,它将捕获特定的击键(Page Down)并将其发送到特定的小部件(textEdit)。

换句话说,如果有人按下Page Down键,我希望textEdit(只读)中的文本滚动。

我有没有想法如何实现这一目标。任何帮助/提示都会非常赞赏!

提前致谢!

1 个答案:

答案 0 :(得分:0)

这是我的解决方案:

self.pgdwn = QShortcut(self)
self.pgdwn.setKey(QKeySequence(Qt.Key_Down))
self.pgdwn.activated.connect(lambda: self.on_page_down())

def on_page_down(self):
    self.sendkeys(Qt.Key_PageDown)

def sendkeys(self, char, modifier=Qt.NoModifier):
    event = QKeyEvent(QEvent.KeyPress, char, modifier)
    QCoreApplication.sendEvent(self.textEdit, event)