python - Python 中的跨平台多媒体键

标签 python keyboard cross-platform

我刚开始开发一个需要能够接收多媒体键(播放/暂停、跳过、上一个)按键的应用程序。我希望针对 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/

相关文章:

python - Pandas 选择查询在元组列中的行

keyboard - 为什么某些 setxkbmap 选项被忽略?

python - MacOSX、Windows、Linux(Gnome) 和 python 上 GTK+ 中的状态图标

html - 字体回退 : how to specify "font-specific" rules?

python - gedit(python)的缩进指南插件

python - flask 。 App 上下文和获取 db.session 的新线程。应用程序未在数据库实例上注册并且没有应用程序绑定(bind)到当前上下文

python - 如何加速 Flask 应用程序的 JSON 速度?

android - Flutter - 将 #(哈希)和 @(提及)符号添加到 native 键盘

按下一个按钮时,Android Phonegap 隐藏软键盘

java - 如何可靠地创建和检测线程死锁