Android后退按钮不会触发keys.onreleased qml

Android后退按钮不会触发keys.onreleased qml,第1张

概述我正在Qt5.3和Qtquick2.1中创建一个程序.我试图使用Keys.onReleased在我的代码中捕获按钮上的按钮.但是这个事件没有被触发.此外,我已将项目焦点设置为true.但仍然没有成功.这是代码示例 import QtQuick 2.1import QtQuick.Controls 1.2import QtQuick.Controls.Styles 1.2import QtQu 我正在Qt5.3和Qtquick2.1中创建一个程序.我试图使用Keys.onReleased在我的代码中捕获按钮上的按钮.但是这个事件没有被触发.此外,我已将项目焦点设置为true.但仍然没有成功.这是代码示例
import QtQuick 2.1import QtQuick.Controls 1.2import QtQuick.Controls.Styles 1.2import QtQuick.Layouts 1.1import QtQuick.Window 2.1Rectangle{    ID: main2    focus: true    wIDth: Screen.WIDth    height: Screen.Height    Keys.enabled: true    Keys.priority: Keys.BeforeItem    property string load_page: ""    signal deskConnected()    Loader{        ID: pageloader        anchors.fill: parent        source: "qrc:/qml/resources/Firstpage.qml"    }    onDeskConnected: {         pageloader.item.onDeskConnected()    }    function loadPatwin(){        pageloader.source = "qrc:/qml/resources/Secondpage.qml";    }    Keys.onReleased: {        console.log("back");        if (event.key === Qt.Key_Back) {            event.accepted=true;        }    }}

这里loadPatwin是在按下某个其他qml中定义的按钮时调用的函数.并加载一个新的qml.但在那之后,当我按下AndroID上的后退按钮时,应用程序将关闭,它甚至不会在日志中“打印”.我在这里做错了什么建议?

提前致谢.

解决方法 在qt quick(Qt5.1及更高版本)中,applicationwindow和Window都有一个关闭信号,当用户触摸androID中的后退按钮时会发出该信号.
您可以简单地实现onClosing处理程序并将close参数设置为false.这是怎么做的:
onClosing: {    close.accepted = false}

通过这个处理程序,您可以轻松管理AndroID设备的后退按钮.它不需要任何额外的许可.例如,假设您有一个StackVIEw来管理GUI.您可以编写这些代码行,然后您的应用程序就像本机AndroID应用程序一样:

onClosing: {        if(stack.depth > 1){            close.accepted = false            stack.pop();        }else{            return;        }    }
总结

以上是内存溢出为你收集整理的Android后退按钮不会触发keys.onreleased qml全部内容,希望文章能够帮你解决Android后退按钮不会触发keys.onreleased qml所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1134388.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存