qml 中 GUI 屏幕转换的工作原理

Dan*_*ras 5 ram user-interface qt qml qtquick2

我是一名 C++ 开发人员,现在正在研究在 QtQuick 中使用 QML 进行 GUI 开发。

在创建 GUI 时,用户只能看到一个屏幕。并且基于用户交互,切换屏幕。但后面究竟发生了什么?

只有关于如何设计单个屏幕的信息很多,但关于如何管理其状态转换的资源却很少。

启动应用程序时是否加载了所有屏幕和组件并更改图层顺序以显示一次屏幕,

或者

在用户操作之后,新屏幕被构建、加载和旧屏幕被销毁(一次只有一个屏幕在内存中)

这种处理的术语是什么。

指出在哪里可以找到此类信息会很有帮助。

如果你不能理解我的问题,请告诉我。我再写一遍!!

jpn*_*rmi 5

有一个方便的现成解决方案可用:StackView。它为滑动/淡入和淡出的页面提供内置过渡。

StackView {
    id: stack
    initialItem: Page {
        Button {
            text: "Push"
            anchors.centerIn: parent
            onClicked: stack.push(Qt.resolvedUrl("OtherPage.qml"))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

StackView 允许您推送项目、URL 和组件。当推送后两者之一时,StackView 会在适当的时候自动创建和销毁实例。例如,如果您推送多个 URL 或组件,它只会实例化成为堆栈中当前项目的最顶部的一个。一旦您从堆栈中弹出项目,一旦它成为堆栈中当前最顶部的项目,它就会按需创建该项目的实例。StackView 还允许您替换堆栈中的一项或多项。当从堆栈中弹出或替换动态创建的项目时,它会在相应的转换完成后自动销毁实例。