特定小部件的 PyQt / PySide 键盘快捷键

Posted

技术标签:

【中文标题】特定小部件的 PyQt / PySide 键盘快捷键【英文标题】:PyQt / PySide keyboard shortcut for specific widget 【发布时间】:2013-08-30 17:13:38 【问题描述】:

我正在尝试使用 QShortcut 设置键盘快捷键,仅适用于某个小部件获得焦点时。

我认为通过设置父级,这会起作用。例如:

QtGui.QShortcut(QtGui.QKeySequence("Ctrl+Return"), self.myWidget, self.doSomething)

但是,当按下 Ctrl+Return 时,它会被触发。我知道我可以通过继承QWidget 并覆盖setShortcut 来做到这一点,但这似乎有点过头了?

有没有更简单的方法?

(答案可以是 C++)

添加:

我认为这可以使用QShortcutContext http://pyqt.sourceforge.net/Docs/PyQt4/qshortcut.html 来完成,但是

QtGui.QShortcut(QtGui.QKeySequence("Ctrl+Return"), self.myWidget, self.doSomething, context=QtCore.Qt.WidgetShortcut)

也不行。

【问题讨论】:

【参考方案1】:

这是由于 PyQt 中的一个错误,升级到 4.10.3 已经解决了这个问题,这意味着我可以使用快捷方式上下文来获得所需的结果。

【讨论】:

以上是关于特定小部件的 PyQt / PySide 键盘快捷键的主要内容,如果未能解决你的问题,请参考以下文章

PyQT/Pyside Opengl 小部件覆盖

PyQt / PySide - 小部件的实际大小

在 PyQt5/Pyside2 中动态添加小部件到流布局

将 PySide/PyQt 小部件嵌入到 Qt/C++ 应用程序中

Qt/PyQt4/PySide QDateEdit 日历弹窗掉屏

将 vtkOrientationMarkerWidget 与 QVTKRenderWindowInteractor 一起使用 [PyQt4/PySide]