1. 程式人生 > >Qt5註冊全域性熱鍵

Qt5註冊全域性熱鍵

簡述

最近寫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,沒有積分下載檔案的,可以去下載本篇博文所寫的專案,包含所有相關的程式碼。