特定小部件的 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 键盘快捷键的主要内容,如果未能解决你的问题,请参考以下文章
将 PySide/PyQt 小部件嵌入到 Qt/C++ 应用程序中
Qt/PyQt4/PySide QDateEdit 日历弹窗掉屏
将 vtkOrientationMarkerWidget 与 QVTKRenderWindowInteractor 一起使用 [PyQt4/PySide]