QML 键盘事件

Posted 一去丶二三里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QML 键盘事件相关的知识,希望对你有一定的参考价值。

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

和鼠标一样,键盘同样也提供了用户交互的能力,所以在介绍完《QML 鼠标事件》之后,是时候深入键盘事件了。

在 QML 中,有一个附加属性 - Keys,是专供可视元素进行按键处理的。当用户按下或释放一个按键时,系统将生成一个按键事件(KeyEvent),并经由 pressed(KeyEvent event) 或 released(KeyEvent event) 信号传递到聚焦的元素上。

此外,还有一个重要的附加属性也和键盘相关 - KeyNavigation,利用它我们可以很方便的使用方向键在可聚焦的元素之间导航切换。

完整的思维导图如下:

通用键盘事件

一般情况下,我们可以使用下面两个信号来处理绝大多数按键:

  • pressed(KeyEvent event):按键按下
  • released(KeyEvent event):按键释放

它们都有一个 KeyEvent 类型的参数,该参数包含了按键的详细信息。

下面是一个简单的例子,通过键盘上的方向键来移

以上是关于QML 键盘事件的主要内容,如果未能解决你的问题,请参考以下文章

Qt/QML:带有 Keys.onPressed 的 TextInput 仅接收 DEL 键而不接收其他键

QT QML Keys 处理注意事项

从 C++ 向 QML 发出信号以读取 Q_PROPERTY 是同步事件吗?

来自 Qt 的 QML 未定义变量

QML Keys.onReleased 按键时触发

Q_INVOKABLE 是不是需要在 Qt5 中从 QML 调用公共 QObject 函数?