QTest::keyPress 不返回 nativeScanCode

发布于 2024-08-31 22:01:17 字数 579 浏览 9 评论 0原文

我正在使用 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;
}
  }
}

谢谢,

维尔斯

I am simulating F1 key using QTest::keyPress() method to test keypress event, on simulation of F1 key when i check for nativeScanCode, it returns 0 value. can any one help?

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

Thanks,

vels

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

肥爪爪 2024-09-07 22:01:17

http://doc.qt.nokia.com/4.4/qkeyevent.html#原生扫描代码

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

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

我对QT了解不多,但我假设QTest::keyPress没有填写所有信息。
使用真正的 F1 按键测试此事件代码可能效果更好。

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

Returns the native scan code of the key event. If the key event does not contain this data 0 is returned.

Note: The native scan code may be 0, even if the key event contains extended information.

I don't know much about QT, but I assume that QTest::keyPress doesn't fill all infos.
Testing this event code with a real F1 keystroke might work better.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文