我使用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
答案 0 :(得分:0)
http://doc.qt.nokia.com/4.4/qkeyevent.html#nativeScanCode
返回键事件的本机扫描代码。如果键事件不包含此数据,则返回0。
注意:本机扫描代码可能为0,即使密钥事件包含扩展信息。
我对QT了解不多,但我认为QTest::keyPress
并未填写所有信息。
使用真正的F1击键测试此事件代码可能会更好。