QML几个具有主动对焦/键盘快捷键控制的项目

Den*_*r21 4 qt qml

我正在尝试为我的qml应用程序实现键盘快捷键控件.我知道有可能使用Action元素,但我不想要必须使用的菜单和工具栏.这就是我用键盘事件接近这个主题的原因.为此,我需要让执行操作的元素成为焦点.但我的目标是全局快捷控制,所以理论上我需要把所有有问题的元素都集中在一起.我FocusScope在文档中找到了类型,但我不确定这是否是我需要的.这是否意味着嵌套FocusScopes'幻灯片' 的焦点通过最后一个元素' FocusScopes不是手动获取焦点,focus: true因此只有最后一个元素保持焦点?或者在获得焦点的幻灯片上的所有元素都有activeFocus 物业集?

这是正确的方法还是我需要别的东西?

Mit*_*tch 5

专注于Qt Quick在我看来是一团糟.它总是让我感到困惑,我最终还是乱搞它forceActiveFocus().我推荐新的Shortcut类型:

Shortcut {
    sequence: StandardKey.Quit
    context: Qt.ApplicationShortcut
    onActivated: Qt.quit()
}
Run Code Online (Sandbox Code Playgroud)

使用该context属性,您可以选择是否要将快捷方式应用于当前窗口或整个应用程序.

这种类型的动机可以在补丁集5的注释中看到:

捷径旨在取代行动.我想在将来杀死后者,因为......

  • 比较实际用户代码:http://cutebin.fi/prwznhkbo
  • 查看BasicButton.qml周围的"动作"相关表达式的数量
  • 恕我直言,整个概念不太适合移动/嵌入式或QML

行动是一项经常被要求的功能.现在他们拥有它,常见的问题是"如何使用不同的图标/文本"或"如何知道触发动作的源".两者都与Action的唯一目的相矛盾,如果它们只是首先编写更简单的QML代码,那么它们就不存在"问题",如示例代码段所示.:)

显然,Action最有用的部分是快捷功能.那些需要快捷方式的人并不满意他们需要使用Action,因为"所有这些其他东西都有,我只想要一条捷径".