2013-03-20 53 views
0

例如,我有兩種類型的鍵,我需要以不同的方式處理。所以,我應該確定什麼類型的按鍵是。我可以單獨信號電平鍵,即確定按下了哪個鍵,併發出適當的信號:在哪裏確定按什麼鍵

void QueryTextEdit::keyPressEvent(QKeyEvent *event) 
{ 
    switch (event->key()) { 
     case Qt::Key_Slash : 
     { 
      emit slashWasPressed(); 
      break; 
     } 
     default : 
     { 
      emit otherKeyWasPressed(event); 
      break; 
     } 
    } 
} 

或者,我可以捕獲所有信號在一個單一的插槽,在這裏處理密鑰類型:

keyHandler(QKeyEvent *event) { 
    if (event->key() == Qt::Key_Slash) { 
     // do something 
     return; 
    } else { 
     // do something 
    } 
} 

什麼方法更可取?

回答

0

看看http://qt-project.org/doc/qt-4.8/qkeyevent.html#key 這提供被按下:)關鍵的INT代碼

或者你可以看看QKeyEvent ::文本(),它返回Unicode的關鍵事件

編輯:@你的評論

如果你想處理斜槓鍵並放棄所有其他人,我會採用方法#2。

+0

我知道如何確定鍵,我不知道什麼方式更好。 – YAPPO 2013-03-20 09:58:06