我刚开始开发一个需要能够接收多媒体键(播放/暂停、跳过、上一个)按键的应用程序。我希望针对 Mac、Linux(主要发行版)和 Windows。我看过a solution for GNOME这似乎可以满足我的需要,但听起来很简单,从来没有任何东西可以在所有主要平台上获取这些 key 。我还需要能够在全局范围内获取 key ,因为应用程序将在后台运行并且永远不会获得焦点。
目前,我与 Python 的关系并不密切,但由于我希望能够面向多个平台,Python 似乎是我的不二之选。有没有人写过任何可以做到这一点的跨平台库?我没能找到任何有效的方法。
PyQT 看起来是一个潜在可行的选择,但是 some people暗示全局 key 检测在 OSX 上可能存在问题。
最佳答案
与 PyQt (或 PySide )您可以使用 Qt::AA_CaptureMultimediaKeys
应用程序标志启用多媒体 key 的跨平台捕获。原则上,使用该标志,您的 Qt 程序应该能够在用户按下多媒体键时接收键盘事件,例如播放 (Qt::Key_MediaPlay
)、停止 (Qt::Key_MediaStop
)、Pause (Qt::Key_MediaPause
) 等。有关受支持键的完整列表,请查看 at the documentation .
我不能说是否所有平台都支持所有键,但总的来说,Qt 的目标是在不同操作系统之间提供非常好的互操作性。我认为通过一个简单的原型(prototype),您应该能够非常快速地回答这个问题(我无法访问 MacOS 环境,所以我无法在那里进行测试,但对于 Windows 和 Linux,它应该可以工作)。有关如何使用 Qt 处理键盘事件的更多信息,请查看 QKeyEvent class 的文档.
关于python - Python 中的跨平台多媒体键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165349/