2010-05-10 83 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按键测试这个事件代码可能会更好。