Pyside(或PyQt)全局快捷键
我想为我的应用程序创建一个快捷键,这样即使我的应用程序没有被选中(也就是没有焦点),它仍然可以接收输入。不过,QShortcut和QApplicationShortcut似乎不能满足我的需求。
这是我现在的代码。我希望能够在其他应用程序有焦点的时候,触发 self.onplaybutton()
这个功能。
self.shortcut = QtGui.QShortcut(self.mainWindow)
self.shortcut.setKey('A')
self.shortcut.activated.connect(lambda: self.onplaybutton())
1 个回答
5
目前,Qt并没有提供一个可以设置全局快捷键的接口,所以你不能直接通过PySide或PyQt来实现这个功能。
因此,你需要使用一个外部库,而现在唯一可用的似乎是libqxt,它里面有一个叫做QxtGlobalShortcut的类。
幸运的是,pygs项目为这个
更新:
如果你需要PyQt5的支持,可以使用PyQxtGlobalShortcut,这是pygs
的一个分支。这个项目自2016年以来没有更新过,但libqxt似乎仍在积极维护,所以可能不需要太多努力就能更新到最新版本。(顺便说一下,实际上还有一个更新的分支在这里。)