【问题标题】:How can I intercept/redirect a keystroke in PySide/Qt如何在 PySide/Qt 中拦截/重定向击键
【发布时间】:2017-10-08 15:59:05
【问题描述】:

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

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

知道如何做到这一点。任何帮助/提示将不胜感激!

提前致谢!

【问题讨论】:

标签: python qt pyside


【解决方案1】:

这是我的解决方案:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 2010-12-13
    • 2021-02-08
    • 2015-08-22
    • 2022-01-09
    • 2017-08-27
    • 2021-03-22
    • 2021-12-18
    相关资源
    最近更新 更多