This question is regarding 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负载的影响是什么 .
Is there any other method for screen transitions?
Other than component loader. I don`t want to use that feature
如何将此代码转换并显示为对象?
我会非常高兴,至少你可以在评论中给出提示 .
谢谢!!
1 回答
对你的问题:
1): 糟糕的主意 . 使用z-index需要引擎确定完全隐藏较低的项目 . 如果你确定这个(在这里会是这种情况)你应该通过将
visibility
设置为false来帮助你 . 然而,您根本不需要使用z-index . 唐't use the z-index. Don' t!但是,这并不能解决您的内存中可能有200个可能复杂的视图 .
你提到的
Loader
已经是一个更好的开始 . 您可以将其与可见性结合使用以预先加载可能很快显示的页面,并在确定它们不会很快显示时(在下一次或两次单击中)卸载它们2): 效果是:长时间没有响应,直到所有内容都被加载 . 文档sais:如果你想做这样的事情,请显示一个启动画面 . 为了显示启动画面,显示它,然后使用
Loader
加载所有其他东西...但一般情况下:如果不是绝对必要,不要这样做 . 动态加载 . 切勿使用z-index完全隐藏屏幕 . 只加载需要加载的东西...我觉得重复......