1

我正在使用 QTest::keyPress() 方法模拟 F1 键来测试按键事件,在我检查 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;
}
  }
}

谢谢,

韦尔斯

4

1 回答 1

0

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

返回按键事件的原生扫描码。如果键事件不包含此数据,则返回 0。

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

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

于 2010-05-10T08:40:11.787 回答