C++/Qt 全局快捷键

5

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


1
这是你想要的吗?如何在Qt中检测全局按键序列的按下?也许这个也值得一看。 - holzkohlengrill
@holzkohlengrill 是的,这似乎是我正在寻找的东西。我已经试图寻找类似的东西好几天了。然而,我找不到获取那个库的方法。它只是将我重定向到 bitbucket.org。 - rettetdemdativ
我也注意到 Qxt 不再维护。我将尝试您发布的第二个链接(该库最近更新了21天,看起来很有前途)并回报结果。 - rettetdemdativ
3个回答

7
总结一下:
  1. Qt事件系统可能是一个选项(需要在系统/桌面管理器层面上进行一些帮助)
  2. Qxt库(不再维护)
  3. 或者这个项目UGlobalHotkey
2. 目前看来似乎是最好的选择。虽然不再维护,但它目前能够与Qt5一起使用。

2
Qt的事件系统本身无法胜任此任务,因为它只处理首先由操作系统传递给它的事件...而且操作系统默认情况下不会将按键传递给当前没有焦点的应用程序窗口。 - Jeremy Friesner
我能否只包含Qxt或UGlobalHotkey的头文件?它们都展示了如何编译,但没有展示如何包含它。另外,感谢您的建议。 - rettetdemdativ
看一下他们的文档。只需将库添加到您的项目(qmake文件)中并使用他们的库。 我只是拿了一个随意的例子:包括,示例等都在这里。 - holzkohlengrill

5

3

1
它可以正常工作,但菜单栏和其他东西将不再起作用。nativeEvent 将获取所有事件,而 Qt 将无法接收它们。 - Darkproduct

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接