通俗易懂玩QT QT用鍵盤按鈕顯示選單欄子目錄

2021-10-24 15:32:13 字數 1274 閱讀 1865

執行之後的效果圖如下:

其實實現的原理很簡單,在網上查了一天的資料,也沒有結果,因為 qmenu 無法設定 setshortcut() 效果,qwidget::keypressevent ( qkeyevent* k ) 與 qwidget::keyreleaseevent ( qkeyevent* k ) 兩個函式應該能實現,但是它會將字元按鍵輸入到輸入框中,這和預期效果殘生和很大的差異,不可行,最後我想到了一種可能性——通過 connect() 訊號卡槽的傳遞性來實現,就是將選單中的乙個子目錄給隱藏掉的,然後給該子目錄設定 setshortcut() 效果,最後用 connect() 訊號卡槽函式將 qmenu 與 qaction 關聯起來,這樣應該可以達到實驗目的,於是就成功了,並且還不需要用 connect() 訊號卡槽來關聯,實現步驟如下:

(1) 先 new 乙個 qaction 物件來實現 setshortcut() 按鍵效果

m_showoptionmenuaction = new qaction(qstringliteral(""));

(2) 然後,將該 qaction 物件設定為不可見

m_showoptionmenuaction ->setvisible(false);

(3) 接著,用 setshortcut() 給該 qaction 物件新增按鍵效果

m_showoptionmenuaction -> setshortcut(qt::alt | qt::key_o);

(4) 最後,將該 qaction 物件新增到 qmenu 物件上即可

m_optionmenu -> addaction(m_showoptionmenuaction);

注: 無需使用 connect() 函式來關聯該 qaction 物件即可實現按鍵響應效果,親測有效。以下是部分原始碼,可以參考:

學習分享,一起成長!接觸qt的時間不長,大概只有乙個多月,有不足之處,歡迎大佬指出來,我會進行更正。

通俗易懂玩QT QSql學習

最近,因為公司的業務需求,需要使用 qt 操作 mysql 資料庫,特意學習了一下,這裡分享給大家。qt 版本 qt 5.11.2 32位 mysql 版本 mysql8.0.22 64位 以下為連線步驟 在 pro 或者 pri檔案中引入qt 的 sql 資料庫模組 修改之前 qt core gu...

numpy bincount 通俗易懂

bincount的用途很簡單,就是統計出乙個列表的各個元素的出現次數。例如輸入是 1,0,2,2,1,2,3,5 那麼輸出就是 1,2,3,1,0,1 這樣的結果可能並不是很直觀,可能依然會有同學會問為什麼會輸出這樣的結果。我們看看 假如我們把輸入的列表中的數字都統計一遍,形成乙個字典 key是列表...

通俗易懂的C STL

泛型程式設計 generic programming 是一種語言機制,通過它可以實現乙個標準的容器庫。像類一樣,泛型也是一種抽象資料型別,但是泛型不屬於物件導向,它是物件導向的補充和發展。泛型程式設計在c 上的應用主要體現在兩方面 函式模板和類模板。接下來舉個栗子 csdn部落格 anyway,模板...