首页 > 解决方案 > 当我关闭弹出窗口然后单击手机上的后退按钮时,我的应用程序会在 qml 中关闭

问题描述

Page{
id: app
Popup  {
                   id: popup1
                   background: Rectangle {
                       implicitWidth: 400
                       implicitHeight: 200
                       Row{
                           topPadding: 40
                           leftPadding: 10
                       Text {
                           id: warning
                           text: qsTr("Are you sure you want to exit the App ?")
                       }
                       }
                       Row{
                           topPadding: 100
                           leftPadding: 60
                           Button {
                               id: yes_btn
                               text: qsTr("YES")
                               onClicked:
                               {
                                   Qt.quit();
                               }
                            }
                           Button {
                               id: no_btn
                               text: qsTr("NO")
                               onClicked:
                               {
                                   popup1.close();
                               }
                            }
                       }
                   }
              }
Keys.onBackPressed: {
            popup1.open();
    }

}

在我的手机上按下后退按钮 popup1 打开,当我关闭弹出窗口并再次按下后退按钮然后而不是打开弹出窗口时,我的应用程序被关闭。如何防止?

标签: qtqml

解决方案


您可能感兴趣的一种解决方案是使用onClosing每次按下后退按钮时发送的信号。

onClosing: {
   close.accepted = false
   if (popup1.opened)
       popup1.close()
   else
       popup1.open()
}

此代码应使您的弹出窗口在按下后退按钮时打开,并在打开时关闭它。


推荐阅读