首页 文章

在QtQuick中的程序开始时加载所有GUI屏幕

提问于
浏览
1

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 回答

  • 3

    对你的问题:

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

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

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

相关问题