QtQuick:" StackView:你不能递归推送/弹出#34;

时间:2014-12-10 22:47:02

标签: qml qt-quick qt5.3 qtquickcontrols

在Android上运行我的QML应用程序时收到此错误消息。不过,它在qmlscene中运行良好。

代码如下所示:

main.qml

ApplicationWindow {
    property Component loaderPage: LoaderPage {
        onGotoPage: changePage(page)
    }

    property Component loginPage: LoginPage {
        onGotoPage: changePage(page)
    }

    function changePage(page) {
        switch (page) {
            case "login":
                stackView.push({item: loginPage});
                break;
            default:
                print("panic!")
        }
    }

    StackView {
        id: stackView
        initialItem: loaderPage
    }
}

Page.qml

Item {
    signal gotoPage (string page)
}

LoaderPage.qml

Page {
    id: loaderPage

    // Triggered by some event:
    function() {
        loaderPage.gotoPage("login");
    }
}

任何人都可以解释为什么它会抱怨递归电话吗?

我正在使用QtQuick 2.3QtQuick.Controls 1.2

1 个答案:

答案 0 :(得分:0)

此错误在QtQuick.Controls 2.2下方仍然存在,移至2.5或更高的位置即可解决。