2016-02-22 55 views
0

我正在研究一个应用程序,我需要在后台运行并在按下某个按钮组合时运行一个函数。我理解这需要一个特定于平台的API调用(WIN32,X11等),但我不知道如何开始。另外,是否有多平台的方式来实现这一目标?我真的需要这个在Windows,Linux和OSX上工作。C++/Qt全局热键

+1

这就是你想要的吗? [how-to-detect-global-key-sequence-press-in-qt](http://stackoverflow.com/questions/23193038/how-to-detect-global-key-sequence-press-in-qt )?也许[this](https://github.com/falceeffect/UGlobalHotkey)值得一看。 – holzkohlengrill

+0

@holzkohlengrill是的。这似乎是我正在寻找的。现在我一直在努力寻找这样的事情。但是,我无法找到获取该库的方法。它只是将我重定向到bitbucket.org – calmandniceperson

+0

@holzkohlengrill我也只是注意到Qxt不再被维护。我会尝试使用第二个链接(该图书馆最近在21天前更新,所以看起来很有希望),然后发布并回报。 – calmandniceperson

回答

3

总结:

  1. The Qt Event System可能是一种选择(与系统一些帮助/桌面管理器级别)
  2. Qxt Library(不再维护)
  3. 或者这个项目UGlobalHotkey

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

+0

Qt的事件系统本身不会(因为它只处理由操作系统首先传送给它的事件),而操作系统不会(默认情况下)将键击传递给应用程序,窗户目前没有重点。 –

+0

我可以只包含Qxt或UGlobalHotkey的头文件吗?两者都展示了如何编译它,但不包括如何包含它。另外,感谢您的建议 – calmandniceperson

+0

看看他们的文档。只需将库添加到您的项目(qmake文件)并使用它们的库。 我只是采取了一个任意的[示例](http://libqxt.bitbucket.org/doc/0.6/qxtbdbhash.html):包括,例子,......都在这里。 – holzkohlengrill