我仅在主页(a.qml)上定义了 PageStack:
import QtQuick 2.0
import Ubuntu.Components 0.1
MainView {
width: units.gu(48)
height: units.gu(60)
PageStack {
id: pageStack
Page {
id: page0
title: i18n.tr("Root page")
Button {
objectName: "button1"
color: "white"
text: i18n.tr("Dictionary")
onClicked: {
print("ChildA")
pageStack.push(Qt.resolvedUrl("ChildA.qml"))
}
}
}
}
}
子页面(ChildA.qml)如下所示:
import QtQuick 2.0
import Ubuntu.Components 0.1
Page {
id: page0
title: i18n.tr("ChildA Page")
Button {
objectName: "button2"
color: "white"
text: i18n.tr("Start child SubChild1.qml")
onClicked: {
print("ChildA")
pageStack.push(Qt.resolvedUrl("SubChild1.qml"))
}
}
Button {
objectName: "button3"
color: "white"
text: i18n.tr("Start child SubChild2.qml")
onClicked: {
print("ChildA")
pageStack.push(Qt.resolvedUrl("SubChild2.qml"))
}
}
}
当关闭 SubChild2.qml 或 SubChild2.qml 时,我需要 ChildA.qml 上的信息,了解是否关闭了 SubChild2.qml 或关闭了 SubChild2,并且需要从它们返回一些参数。如何做?
答案1
您应该在 ChildA 中静态声明 SubChild1 和 SubChild2。然后将信号“pageClosed”附加到它们两个,并设置所需的参数。最后一步 - 为这些信号添加处理程序,例如
SubChild1 {
id: subChild1
...
onPageClosed: { /* my staff */ }
}