这个问题与QML有关,QtQuick 1.1,Qt 4.8.6
我见过嵌入式应用程序的源代码,其中所有屏幕都在开始时加载。例如,
//Main.qml
Rectangle{ //Base Container
width:640
height:480
MainScreen{ id: main_screen} //Individual screen files are given here
SettingScreen1 { id:screen1}
SettingScreen2 { id:screen2}
HelpScreen1 {id: help_screen1}
...
...
...
}
并在相应的屏幕文档中,单击鼠标区域时,单个文档的the Value of Z
会更改为显示在前面
//MainScreen.qml
Rectangle{
width: 640
height:480
z:1
//some buttons
//Mousearea for next button
onClicked: {screen1.z = 10}
//Mousearea for back button
onClicked: {screen1.z = 0}
}
我的问题是,
1。从main.qml开始,所有子项一次创建,只更改其对堆栈顺序的可见性。这是一个好方法吗?
2。如果有200个屏幕的话,如果有很多孩子在开始时加载会发生什么。启动时和运行时CPU负载的影响是什么。
还有其他屏幕转换方法吗?
除了组件加载器。我不想使用该功能
如何转换此代码并将其显示为对象?
我会非常高兴,至少你可以在评论中给出提示。
谢谢!
答案 0 :(得分:3)
问题:
1):糟糕的主意。使用z-index需要引擎确定完全隐藏较低的项目。如果你确定这一点(这里就是这种情况)你应该通过将visibility
设置为false来帮助你。然而,您根本不需要使用z-index。不要使用z-index。不要!
然而,这并不能解决您的记忆中可能有200个可能复杂的视图
你提到的Loader
已经是一个更好的开始。
您可以将其与可见性结合使用以预先加载可能很快显示的页面,并在确定它们不会很快显示时(在下一次或两次单击中)将其卸载
2):效果是:长时间没有响应,直到所有内容都加载完毕。文档sais:如果你想做这样的事情,请显示一个启动画面。为了显示启动画面,显示它,然后使用Loader
加载所有其他东西......但总的来说:如果不是绝对必要的话,不要这样做。动态加载。切勿使用z-index完全隐藏屏幕。只加载需要加载的东西......我觉得重复...