【问题标题】:Control qml virtual keyboard using qml code使用qml代码控制qml虚拟键盘
【发布时间】:2020-10-21 16:47:30
【问题描述】:

我想使用输入面板在我的 QtQuickApplication 上安装一个虚拟键盘:

import QtQuick.VirtualKeyboard 2.1
    InputPanel {
        id: inputPanel
        anchors.fill: parent
        focus: true
    }

我的系统上没有鼠标(也没有触摸屏)。我只有一个小键盘(最多 10 个按钮)来控制我的 GUI。

我想使用 qml 代码从虚拟键盘中选择和键入键。

有没有什么办法可以使用一些qml代码来控制虚拟键盘?

【问题讨论】:

  • 如果你没有真正的键盘没有鼠标,你想如何控制虚拟键盘?
  • 由于我正在研究嵌入式系统,我的输入仅限于几个按钮。我想使用这些按钮(或按钮组合)导航到我的 InputPanel 并选择我想写的键。
  • 您可以尝试将您的密钥绑定到 C++ 中的真实密钥。 QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier); QCoreApplication::postEvent (engine->rootObjects().first(), event);
  • 感谢您的回答。不幸的是,我无法用我的几个按钮对每个键进行编码。我想用它们来控制虚拟键盘。您的意思是可以使用真实的按键事件导航到虚拟键盘吗?
  • 我把问题改写了更清楚

标签: qt qml


【解决方案1】:

感谢 folibis,我找到了解决方案。

Qt 虚拟键盘可以使用箭头键控制,但必须使用 CONFIG+=arrow-key-navigation 再次编译,如本主题所述:
How to use arrows to navigate through a QtVirtualKeyboard

在这个 Qt 文档中:
https://stackoverflow.com/questions/54719106/how-to-use-arrows-to-navigate-through-a-qtvirtualkeyboard

然后,正如 folibis 在他之前的评论中所说,可以使用 QKeyEvent 对象模拟箭头键事件: QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier); QCoreApplication::postEvent (engine->rootObjects().first(), event);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多