我正在研究一个应用程序,我需要在后台运行并在按下某个按钮组合时运行一个函数。我理解这需要一个特定于平台的API调用(WIN32,X11等),但我不知道如何开始。另外,是否有多平台的方式来实现这一目标?我真的需要这个在Windows,Linux和OSX上工作。C++/Qt全局热键
回答
总结:
- The Qt Event System可能是一种选择(与系统一些帮助/桌面管理器级别)
- Qxt Library(不再维护)
- 或者这个项目UGlobalHotkey
。 2.目前看来是最好的选择。虽然它不再维护,但它目前与Qt5一起使用。
Qt的事件系统本身不会(因为它只处理由操作系统首先传送给它的事件),而操作系统不会(默认情况下)将键击传递给应用程序,窗户目前没有重点。 –
我可以只包含Qxt或UGlobalHotkey的头文件吗?两者都展示了如何编译它,但不包括如何包含它。另外,感谢您的建议 – calmandniceperson
看看他们的文档。只需将库添加到您的项目(qmake文件)并使用它们的库。 我只是采取了一个任意的[示例](http://libqxt.bitbucket.org/doc/0.6/qxtbdbhash.html):包括,例子,......都在这里。 – holzkohlengrill
http://amin-ahmadi.com/2015/11/14/how-to-use-system-wide-hotkeys-in-your-qt-application/显示了如何在Qt中使用Windows API的RegisterHotKey。
您需要使用热键的关键代码。
它工作正常,但菜单栏和其他东西将不再起作用。 nativeEvent将获得所有事件,而Qt将不会收到它们。 – Darkproduct
- 1. android全局热键
- 2. 允许全局热键
- 3. Nodejs全局热键执行
- 4. WPF中的全局热键?
- 5. Mono中的全局热键
- 6. 自定义全局热键
- 7. WIN32 API的全局热键?
- 8. Java中的全局热键
- 9. 在Mac上注册全局热键?
- 10. Win和X11中的全局热键
- 11. 逆向工程全局热键块
- 12. 全局热键在听写功能
- 13. 注册全局热键的副本
- 14. 在Windows CE中注册全局热键
- 15. 浏览器刷新全局热键
- 16. c#修复了全局热键
- 17. 无法注册多个全局热键
- 18. 全局热键分配窗口
- 19. VB.net中的全局热键捕获
- 20. C#全局热键(没有通常使用的全局钩子)
- 21. Python全球热键
- 22. 全球热键 - C#
- 23. 可可/碳:当按住键时抓住全局热键(按住)
- 24. 用于全局热键注册的修改键代码
- 25. Chrome应用程序中的全局键盘热键
- 26. WPF Prism(MVVM)中的全局热键/快捷键管理器
- 27. X11/Xlib全球热键
- 28. 什么是Angular2创建全局键盘快捷键(又名热键)的方式?
- 29. 全球热键释放(键控)? (WIN32 API)
- 30. 用于程序设置的全局热键UI控制
这就是你想要的吗? [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
@holzkohlengrill是的。这似乎是我正在寻找的。现在我一直在努力寻找这样的事情。但是,我无法找到获取该库的方法。它只是将我重定向到bitbucket.org – calmandniceperson
@holzkohlengrill我也只是注意到Qxt不再被维护。我会尝试使用第二个链接(该图书馆最近在21天前更新,所以看起来很有希望),然后发布并回报。 – calmandniceperson