我正在研究一個應用程序,我需要在後臺運行並在按下某個按鈕組合時運行一個函數。我理解這需要一個特定於平臺的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