通過閱讀各種帖子和線程,導致我沒有我需要你的幫助。在Qt和Mac OS X下注冊全局熱鍵
我確實有一個適用於Mac OS X的Qt應用程序,它在某些使用點將在後臺運行而不是活動的。在這種情況下,我想要添加全局熱鍵,以便用戶可以通過單擊預定義的熱鍵輕鬆地打開或關閉某些功能。 當應用程序處於後臺並且未聚焦時,以下功能無法正常工作。
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::Key_F12), parent);
shortcut->setContext(Qt::ApplicationShortcut);
到目前爲止,我發現Qxt
這恰好是過時的Qt的5.5。 然後有DDHotkey需要一個不能使用的特定編譯器。 最後,我發現添加一個全局的AppleScript
的解決方案,它再次註冊一個事件,而不是我正在尋找的。
tell application "System Events" to tell process "myApp"
click menu item "myButton" of menu 1 of menu bar item "Menu" of menu bar 1
end tell
是否有使用objective-c
或cocoa
實現正是我在尋找一種方式? 如果我可能錯失了某些東西,請帶領我走向正確的方向。
在此先感謝!
這些誰尋求一個更Qt的方式,檢查以下內容庫: https://github.com/ddqd/qxtglobalshortcut5
它利用過時 QXT庫,但得到它再次合作。 這個人測試它直到Qt 5.4,我們在Qt 5.5下成功使用它。
不幸的是,我不知道如何把這個代碼轉換成適用於Mac一個.mm文件,並從我平時的C++代碼中調用它。 –
這可能會指向你在正確的方向:http://stackoverflow.com/questions/23404158/qt-run-object-c-code 你也可以拆分你的項目,並建立一個dylib,只需加載它作爲一個庫。 (比如windows上的dll,以及linux上的文件) – Meeh
你只需要製作一個頭文件,該頭文件包含.mm目標代碼文件中的對象或函數,然後將其包含在QT項目中,然後可以調用您的函數或對象與任何其他QT/C++函數/對象一樣。 – Meeh