Qt Shift快捷鍵,QT組合按鍵的乙個bug

2021-10-07 23:18:58 字數 946 閱讀 2744

在qt 常常會使用到組合按鍵作為快捷鍵,而快捷鍵往往有一下的寫法:

void qmainwindow::keyreleaseevent(qkeyevent *event)

else if (modifiers == qt::controlmodifier)

else if (modifiers == qt::shiftmodifier)

else if(modifiers =( qt::shiftmodifier | qt::controlmodifier))

.... // 這裡省略無數**

}

然後,自信滿滿的提交**,結果有部分按鍵死活都不觸發!!!,有些按鈕能觸發,卻在小鍵盤上無法觸發

// qt 並沒有把windows底層的按鍵處理

// 需要注意 

1、

if(modifiers == qt::shiftmodifier)  //時候,部分鍵位有其他意義,例如

}

其次上面的錯誤還有:字母上面的數字鍵,和小鍵盤的數字鍵在shift模式下,表示不同的鍵

2、

if (modifiers == qt::nomodifier)  // 需要注意的是,shift+小鍵盤會進這裡

}

3、

if (modifiers == qt::controlmodifier) // 這麼寫也不一定對,ctrl+a 和ctrl+方向鍵是不一致的

// 應該寫成

if(modifiers == qt::controlmodifier || modifiers & qt::controlmodifier)

// 注意,需要優先處理多個按鍵情況類似 qt::controlmodifier  + qt::shiftmodifier + qt::altmodifier

QT實現Ctrl S快捷鍵(組合快捷鍵)

首先要清楚,ctrl s的組合快捷鍵中,ctrl是 修飾鍵 s是 按鍵值 平時使用的組合快捷鍵都是要先按下修飾鍵再按按值鍵,順序反了就沒有組合鍵的效果了 qt按鍵按下的事件qkeyevent中有key 和modifier key 函式返回的是發生時間的按鍵值,modifier 返回的而是修飾鍵。因此...

qt高亮快捷鍵 Qt常用快捷鍵

f1 檢視幫助 f2 跳轉到函式定義 和ctrl 滑鼠左鍵一樣的效果 shift f2 宣告和定義之間切換 f4 標頭檔案和原始檔之間切換 ctrl 1 歡迎模式 ctrl 2 編輯模式 ctrl 3 除錯模式 ctrl 4 專案設定模式 ctrl 5 幫助模式 ctrl 6 輸出模式 alt 0 ...

zend Studio 快捷鍵組合

zend studio 快捷鍵組合 ctrl 單行注釋。當前為php 時,則在游標所在行新增雙斜槓行注釋,選擇多行則每一行都新增雙斜槓 而當 為html時則在行前後新增注釋,選中多行將在選區前後新增注釋,而非每行新增 php html 全部適用,不適用於css部分 ctrl shift 塊注釋,為選...