Qt中特殊Tab鍵事件的實現

2021-04-13 11:11:59 字數 835 閱讀 5389

在qt中,可以使用 void

qwidget::keypressevent (

qkeyevent * k )來進行鍵盤響應,例如:

void form1::keypressevent( qkeyevent *k )

else if(k->key() == key_d)

else if(k->key() == key_w)}}

但是,有一些特殊的按鍵比如說tab鍵,如果在keypressevent中實現則是不能成功的,因為預設tab事件(切換焦點)被先捕獲了,預設tab和shift+tab事件定義在qwidget.h中,**為:

case qevent::keypress: else if ( k->key() == key_tab )

}所以我們要在之前就實現我們自己的tab事件.實現**如下:

附:keypressevent

().由以上的qt參考文件可以看出,對

事件的處理總是先從qwidget::event()函式開始,所以如果要處理tab訊息,就需要在子類中重寫虛函式event(),然後靜態呼叫預設的qwidget::event()函式,完成預設的對其他事件的分派。

我將在下篇文章中詳細的分析一下qt中的事件機制。

Linux 中的TAB鍵妙用

linux 中的長檔名確實可以給我們帶來 望文生意 的好處,同時也帶來輸入長目錄名和長檔名麻煩,linux 中的tab鍵 正是為了彌補這一點.tab鍵的兩大作用 1.只需輸入檔案或目錄名的前幾個字元,然後按tab 鍵,如無相重的,完整的檔名立即自動在命令列 出現 如有相重的,再按一下tab鍵,系統會...

QT中的事件機制

什麼是自發事件?哪些型別的事件可以被propagated 或compressed?posting and sending 事件之間有何不同?什麼時候應該呼叫 accept 或是ignore 如果這些問題你還不是很了解,那麼繼續看下去。事件起源 定製事件型別 到現在為至,我們所說的內容不僅僅適用於ke...

Qt中的事件機制

什麼是自發事件?哪些型別的事件可以被propagated 或compressed?posting and sending 事件之間有何不同?什麼時候應該呼叫 accept 或是ignore 如果這些問題你還不是很了解,那麼繼續看下去。事件起源 定製事件型別 到現在為至,我們所說的內容不僅僅適用於ke...