2010-05-10 68 views
1

我模擬F1鍵使用QTest :: keyPress()方法來測試keypress事件,當我檢查nativeScanCode時F1鍵的模擬,它返回0值。任何人都可以幫忙嗎?QTest :: keyPress沒有返回nativeScanCode

//Code snippet 
//To simulate F1 key press 
QTest::keyPress(&kboard, Qt::Key_F1); 

//To check keypress Event 
void keyboard::keyPressEvent(QKeyEvent* ke) { 
if (ke->type() == QEvent::KeyPress) { 
QKeyEvent* key_event = static_cast<QKeyEvent *>(ke); 
//To check F1 key simulation 
if (key_event->key() == Qt::Key_F1) { 
    int nativeCode = key_event->nativeScanCode(); 
    qDebug()<< nativeCode <<endl; 
} 
    } 
} 

感謝,

VELS

回答

0

http://doc.qt.nokia.com/4.4/qkeyevent.html#nativeScanCode

返回鍵事件的本地掃描代碼。如果關鍵事件不包含此數據,則返回0。

注意:即使關鍵事件包含擴展信息,本機掃描代碼也可能爲0。

我不知道很多關於QT,但我認爲QTest::keyPress不填充所有的相關信息。 用真正的F1按鍵測試這個事件代碼可能會更好。