C++/Qt 全局热键

C++/Qt Global Hotkeys

我正在开发一个应用程序,我需要在后台 运行 并在按下特定按钮组合时 运行 一个功能。我有点理解这需要特定于平台的 API 调用(WIN32、X11 等),但我真的不知道如何开始。另外,是否有一种多平台的方式来实现这一目标?我真的需要它来处理 Windows、Linux 和 OSX。

总结一下:

  1. The Qt Event System 可能是一个选项(在 system/desktop 经理级别的帮助下)
  2. Qxt Library(不再维护)
  3. 或者这个项目UGlobalHotkey

。 2. 似乎是目前最好的选择。虽然它不再维护,但它目前可以与 Qt5 一起使用。

http://amin-ahmadi.com/2015/11/14/how-to-use-system-wide-hotkeys-in-your-qt-application/ shows how to use the Windows API's RegisterHotKey 在 Qt.

您需要热键的键码。

看看https://github.com/kwhat/libuiohook

它是一个可以轻松与 Qt 集成的 c 库。 允许全局键盘和鼠标事件侦听器。

https://github.com/Skycoder42/QHotkey

这是一个基于 Qt 的库,似乎得到维护。