我是一名 C++ 开发人员,现在正在研究在 QtQuick 中使用 QML 进行 GUI 开发。
在 GUI 创建过程中,用户只能看到一个屏幕。
并根据用户交互来切换屏幕。
但背后究竟发生了什么?
有很多信息仅涉及如何设计单个屏幕,但有关如何管理其状态转换的资源却很少。
启动应用程序时是否加载了所有屏幕和组件,并将层顺序更改为显示一次屏幕,
OR
用户操作后,新屏幕被构建、加载,旧屏幕被销毁(一次只有一个屏幕在内存中)
这种处理类型的术语是什么?
指出我在哪里可以找到此类信息将会非常有帮助。
如果您无法理解我的问题,请告诉我。我再重写一遍!!
有一个方便的现成解决方案可用:堆栈视图 http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html。它为滑动/淡入和淡出的页面提供内置过渡。
StackView {
id: stack
initialItem: Page {
Button {
text: "Push"
anchors.centerIn: parent
onClicked: stack.push(Qt.resolvedUrl("OtherPage.qml"))
}
}
}
StackView 允许您push http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#push-method项目、URL 和组件。当推送后两者中的任何一个时,StackView 会在适当的时候自动创建和销毁实例。例如,如果您推送多个 URL 或组件,它只会实例化最顶层的 URL 或组件,该 URL 或组件将成为堆栈中的当前项。一旦您pop http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#pop-method当项目从堆栈中移出时,一旦它成为堆栈中当前最顶层的项目,它就会根据需要创建该项目的实例。 StackView 还允许您replace http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#replace-method堆栈中的一项或多项。当从堆栈中弹出或替换动态创建的项目时,它会在相应的转换完成后自动销毁实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)