C++/Qt 全局热键

cal*_*son 5 c++ qt hotkeys

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

hol*_*ill 6

总结一下:

  1. Qt 事件系统可能是一个选项(在系统/桌面管理器级别有一些帮助)
  2. Qxt 库(不再维护)
  3. 或者这个项目UGlobalHotkey

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

  • Qt 的事件系统(本身)不会做到这一点,因为它只处理首先由操作系统传递给它的事件......并且操作系统不会(默认情况下)将击键传递给其窗口的应用程序目前没有焦点。 (2认同)

Atu*_*tul 5

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

它的ac库可以很容易地与Qt集成。允许全局键盘和鼠标事件侦听器。

或者

https://github.com/Skycoder42/QHotkey

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