【问题标题】:Qt QML - handle navigation buttons?Qt QML - 处理导航按钮?
【发布时间】:2016-03-29 21:05:30
【问题描述】:

上下文:

Qt QML 5.6

我找不到相关文档来处理我的 QML 应用程序中的 Android 导航按钮(屏幕底部的三角形、正方形和圆形)。

目前,当触摸它们时,它只是将我的应用程序置于后台。我想给他们一些逻辑。

问题:

是否可以在 QML 中管理这些按钮?还是我必须处理 C++ 事件处理程序? (如果是这样,应该关注哪个代码?)

谢谢

【问题讨论】:

    标签: android c++ qml qt5


    【解决方案1】:

    穷人的解决办法:

    在 Window 或应用程序窗口范围内,使用

        onClosing: {
          do_what_you_need()
          close.accepted = false
        }
    

    do_what_you_need(),如果没问题,你可以调用Qt.quit。

    【讨论】:

    • 这也会在尝试关闭其他平台上的窗口时触发。尝试使用 if (Qt.platform.os == "android") 包装
    【解决方案2】:

    可以从 QML 管理这些按钮。在 QML 中,这些按键的处理方式与键盘上的按键完全一样。例如,Qt.Key_Back 指的是返回键(三角形),Qt.Key_Home 指的是主页键(正方形)。下面是一个在 QML 中监听 home 键的例子:

    Keys.onPressed: {
       if (event.key == Qt.Key_Home) {
          console.log("Square button(home) pressed");
       }
    }
    

    有关 Qt 中的关键枚举的更多信息,请参阅此文档:http://doc.qt.io/qt-5/qt.html#Key-enum

    【讨论】:

    • 我试过了,但举个例子,我不能用那个代码禁用这些按钮。即使使用 event.accepted = false,它仍然会将我的应用程序置于后台。此处不执行逻辑。
    猜你喜欢
    • 1970-01-01
    • 2021-11-26
    • 2018-09-26
    • 2021-06-12
    • 1970-01-01
    • 2021-12-11
    • 2018-12-05
    • 2015-05-24
    • 1970-01-01
    相关资源
    最近更新 更多