Qt5註冊全域性熱鍵
阿新 • • 發佈:2019-01-22
簡述
最近寫Qt程式需要用到註冊全域性熱鍵,百度了好多,也沒有找到成功的(可能我用的是假百度吧),幾天後,找到一個案例,終於成功。本文全部是基於這個例程進行編寫的。正所謂,站在巨人的肩上!
儘量寫的詳細一點,使新手學習過程中少走彎路。文章最後會有專案全部程式碼,僅供參考。
相關環境
Qt 5.6
Windows 10
沒有在linux系統執行,我只針對windows做了測試。
例項
新建一個視窗程式
專案命名
一直點選下一步完成後,專案的目錄結構如下
新增相關檔案
在專案中新增響應熱鍵所需的檔案,點選此處下載檔案
將檔案複製到專案目錄下,如圖
在專案上面右鍵,選擇新增現有檔案
在彈出視窗選擇剛才的檔案,記得全部選中
點選開啟後,專案的檔案結構已經發生了變化
程式碼編輯
在main.cpp檔案新增有檔案
#include<MyGlobalShortCut/MyGlobalShortCut.h>
然後在main函式中新增熱鍵註冊和繫結的程式碼
MyGlobalShortCut *shortcut = new MyGlobalShortCut("Ctrl+F9",&w);
QObject::connect(shortcut,SIGNAL(activated()),&w,SLOT(activated()));
main.cpp修改截圖如下
activated()是mainwindows裡面的一個slot,這個是需要我們進行自定義的,開啟mainwindows.h新增宣告。函式名任意。
public slots:
void activated();
在mainwindows.cpp檔案中定義activated()函式,此函式內完成響應熱鍵的事件。本例中簡單的寫個彈出提示框。
void MainWindow::activated()
{
QMessageBox::information(this,"title","熱鍵已經按下");
}
注意新增QMessageBox的標頭檔案
#include<QMessageBox>
mainwindows.cpp檔案的截圖如下
到此,程式碼已經編寫完成。
執行測試
執行之後,無論程式視窗是否屬於啟用狀態,當鍵盤按下快捷鍵(”Ctrl+F9”)都會彈出訊息框。
結尾
再次宣告,此篇文章是站在巨人的肩膀上進行編寫的。
專案的完整程式碼在github,沒有積分下載檔案的,可以去下載本篇博文所寫的專案,包含所有相關的程式碼。