QT 鍵盤監聽

2021-10-25 00:26:53 字數 2289 閱讀 3407

前言:

qt檢測按鍵需要了解的地方有兩塊地方:1、鍵盤值;2、鍵盤事件、組合鍵、組合鍵響應方法

demo演示:接下來會將詳細步驟。

一、鍵盤值

二、如何捕獲鍵盤按下、彈起、組合鍵、大小寫事件、組合鍵響應方法

1.鍵盤按下、彈起事件

mainwindow.h

//引入頭

#include //重寫

/* * keypressevent 按鈕按下事件

* keyreleaseevent 按鈕彈起事件

* *k * event 的意思是大家後面的變數可以自由發揮

*/void keypressevent( qkeyevent *k );

void keyreleaseevent( qkeyevent * event);

mainwindow.cpp

#include //加入utf-8防止漢字亂碼

#pragma execution_character_set("utf-8")

//建構函式初始化部分加入

this->grabkeyboard();

//鍵盤按下事件

void mainwindow::keypressevent( qkeyevent *k )

else if(k->key() == qt::key_b)

else if(k->key() == qt::key_c)

}//鍵盤彈起事件

void mainwindow::keyreleaseevent( qkeyevent * event)

//保持編輯器在游標最後一行

qtextcursor cursor=ui->textedit->textcursor();

cursor.moveposition(qtextcursor::end);

ui->textedit->settextcursor(cursor);

2.組合鍵、大小寫事件

看下面**有處問題需要注意,在jpg演示的時候單獨按下capslock鍵「按下」沒有響應,彈起出發了事件。這是因為單獨的按鍵監聽需要放在組合鍵之前,組合鍵會觸發按鈕單獨響應。

大小寫問題,介面一開始處於漢語輸入法一般情況先按shift鍵切換英文然後再按capslock鍵切換大寫,可以建立全域性變數根據capslock按下次數來判斷是否大小寫。

else if(k->key() == qt::key_control)            //ctrl鍵

else if(k->key() == qt::key_alt) //左側alt鍵

else if(k->key() == qt::key_altgr) //右側alt鍵

//檢測ctri+capslock組合鍵 和 capslock大小寫鍵

if ((k->modifiers() == qt::controlmodifier) && (k->key() == qt::key_capslock))

else if (k->key() == qt::key_capslock) //capslock 大小寫

//保持編輯器在游標最後一行

qtextcursor cursor=ui->textedit->textcursor();

cursor.moveposition(qtextcursor::end);

ui->textedit->settextcursor(cursor);

3.組合按鍵響應方法

//按鍵+滑鼠組合,例如ctrl+左擊(先ctrl後左擊觸發,先左擊後ctrl不可觸發):

//按鍵+滑鼠組合方法2,例如a+左擊(先a後左擊,先左擊後a均可觸發):

//按鍵+按鍵組合,例如ctrl+字母(先ctrl後a觸發,先a後ctrl不可觸發):

if ((event->modifiers() == qt::controlmodifier) && (event->key() == qt::key_a))

三、其它文章

這麼多記不住怎麼辦,趕緊點收藏呀~,頁面右下角五角星收藏。

傳送門:

全面的qt 樣式表:

Flex 監聽鍵盤事件

flex 監聽鍵盤事件 2010 05 19 10 15 一 說明 1 只有當監聽的物件獲取焦點後,才能出接收到keyboardevent.key down event。二例子為應用程式的stage或元件的keydown事件新增 讀取keyboardevents的keycode屬性。使用keydow...

textField的鍵盤監聽

監聽鍵盤的彈出事件 建立乙個nsnotificationcenter物件。nsnotificationcenter center nsnotificationcenter defaultcenter 監聽鍵盤的彈出通知 center addobserver self selector selecto...

js監聽鍵盤事件

一 監聽全域性鍵盤按下事件,例如監聽全域性回車事件 d ocum ent key down fun ctio n ev ent if e vent key code 13 a lert 你按 下了en ter 二 監聽 某個元件 鍵盤按下 事件 如 butt on按鈕 do cume nt keyd...