Qt.quit()
, который выходит из приложения, но я просто хочу выйти из текущего экрана, который должен позволить мне вернуться к родительскому экрану. Как мне это сделать?Как закрыть один экран/страницу в qml?
Rectangle {
id: page
visible: true
width: 360
height: 480
Button {
width: 150
height: 50
text: "Parent"
onClicked: {
console.log("Parent pressed")
//? how to exit this screen here?
}
}
}
Вот новый код после ответа Folibis.
import QtQuick 2.3
import QtQuick.Window 2.2
Window {
visible: true
width: 360
height: 360
property bool isClose: false
MouseArea {
anchors.fill: parent
onClicked: {
if(isClose)
Qt.quit();
else
Page2.show() //subWindow.show();
isClose = true;
}
}
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
}
}
Окно в новом файле QML теперь называется Page2.qml
import QtQuick 2.0
import QtQuick.Window 2.2
Window {
id: subWindow
visible: false
width: 400
height: 400
flags: Qt.Dialog
Text {
anchors.centerIn: parent
text: "Click me to close the subwindow"
}
MouseArea {
anchors.fill: parent
onClicked: subWindow.close();
}
}
Проблема заключается в том, как я называю Page2.qml от main.qml?
Может быть, просто 'page.visible = false'? – Chernobyl
Это будет работать только в том случае, если 'rectangle' находится в одном файле, я хочу вернуться из другого qml-файла. – zar
Посмотрите в StackView: https://qt-project.org/doc/qt-5-snapshot/qml-qtquick-controls-stackview.html – MrEricSir