2016-02-22 56 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