簡體   English   中英

跨平台 Qt 應用程序中的全局熱鍵

[英]Global hotkeys in a cross-platform Qt application

我正在使用 Qt 在 C++ 中創建一個跨平台實用程序,為此我需要快捷鍵(或熱鍵,不太確定其中的區別)。 本質上,該應用程序將運行並且僅作為系統托盤中的圖標可見,並在您按下某些快捷鍵(例如 Ctrl-Shift-f4 或其他)時執行操作。

我的印象是 Qt 不提供處理快捷鍵的方法,除非應用程序處於焦點狀態,而在我的情況下它不會。 所以,那已經結束了(如果這一個可行的選擇,請告訴我)。

我已經找到了很多示例/文檔來解釋如何使用適用於 linux 的 Xlib/Xcb、適用於 Windows 的 win32 api 和適用於 osx 的 carbon 來執行此操作,但我很難找到一種適用於Qt 應用程序的范圍。

什么是完成我需要的方法?

我正在挖掘這個舊的未回答的問題,因為使用 QML,我遇到了同樣的問題。 快捷方式QML 類型允許您指定 上下文屬性,但您仍然需要一個有焦點的應用程序或窗口。

但是,我找到了一個解決這個問題的庫: QHotkey 在 Github 上這樣描述自己:

桌面 Qt 應用程序的全局快捷方式/熱鍵。

QHotkey 是一個可用於創建熱鍵/全局快捷方式的類,也就是無處不在的快捷方式,獨立於應用程序狀態。 這意味着您的應用程序可以處於活動狀態、非活動狀態、最小化或根本不可見,但仍會收到快捷方式。

QHockey 可以通過qpm作為一個包使用,並且可以直接從 C++ 中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM