Pyside(或PyQt)全局快捷键

3
我希望创建一个应用程序的快捷方式,即使我的应用程序没有焦点也会继续寻找输入。 QShortcut和QApplicationShortcut似乎不能满足我的需求。
这是我的代码。我希望能够在不同的应用程序具有焦点时触发self.onplaybutton()。
self.shortcut = QtGui.QShortcut(self.mainWindow)
self.shortcut.setKey('A')
self.shortcut.activated.connect(lambda: self.onplaybutton())
1个回答

5

目前,Qt没有提供全局快捷键的API,因此您无法直接使用PySide或PyQt实现此功能。

相反,您需要使用外部库,唯一可用的东西似乎是libqxt,其中包含QxtGlobalShortcut类。

幸运的是,pygs项目为QxtGlobalShortcut类提供了PyQt绑定,因此这提供了至少一种获得所需功能的方法。


更新:

对于PyQt5支持,有PyQxtGlobalShortcut,它是pygs的一个分支。该项目自2016年以来没有更新,但libqxt仍然似乎在积极维护,因此可能不需要太多困难就可以更新。(PS: 实际上,这里有一个更新更近的分支here)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接