【问题标题】:QtQuick: "StackView: You cannot push/pop recursively"QtQuick:“StackView:您不能递归地推送/弹出”
【发布时间】:2014-12-10 22:47:01
【问题描述】:

在 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

【问题讨论】:

  • 请提供现成的最小项目,以便每个人都可以在他身边进行测试。另外,你能解释一下你在Page里面的函数function()是什么(函数命名有什么错误)吗?

标签: qml qt-quick qt5.3 qtquickcontrols


【解决方案1】:

此错误在QtQuick.Controls 2.2 更低版本中仍然存在,升级到 2.5 及更高版本应该可以解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多