QTest :: keyPress没有返回nativeScanCode

时间:2010-05-10 08:29:05

标签: qt qt4 qttest

我使用QTest :: keyPress()方法模拟F1键来测试keypress事件,当我检查nativeScanCode时模拟F1键,它返回0值。任何人都可以帮忙吗?

//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

1 个答案:

答案 0 :(得分:0)

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

  

返回键事件的本机扫描代码。如果键事件不包含此数据,则返回0。

     

注意:本机扫描代码可能为0,即使密钥事件包含扩展信息。

我对QT了解不多,但我认为QTest::keyPress并未填写所有信息。 使用真正的F1击键测试此事件代码可能会更好。