在QtQuick

时间:2016-10-18 04:50:03

标签: qt user-interface qml qt-quick

这个问题与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负载的影响是什么。

还有其他屏幕转换方法吗?

除了组件加载器。我不想使用该功能

如何转换此代码并将其显示为对象?

我会非常高兴,至少你可以在评论中给出提示。

谢谢!

1 个答案:

答案 0 :(得分:3)

问题:

1):糟糕的主意。使用z-index需要引擎确定完全隐藏较低的项目。如果你确定这一点(这里就是这种情况)你应该通过将visibility设置为false来帮助你。然而,您根本不需要使用z-index。不要使用z-index。不要!

然而,这并不能解决您的记忆中可能有200个可能复杂的视图 你提到的Loader已经是一个更好的开始。 您可以将其与可见性结合使用以预先加载可能很快显示的页面,并在确定它们不会很快显示时(在下一次或两次单击中)将其卸载

2):效果是:长时间没有响应,直到所有内容都加载完毕。文档sais:如果你想做这样的事情,请显示一个启动画面。为了显示启动画面,显示它,然后使用Loader加载所有其他东西......但总的来说:如果不是绝对必要的话,不要这样做。动态加载。切勿使用z-index完全隐藏屏幕。只加载需要加载的东西......我觉得重复...