QML PageStack,页面之间的通信-返回值

QML PageStack,页面之间的通信-返回值

我仅在主页(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 */ }
}

相关内容