Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 当UI屏幕为';已加载';?_Qt_User Interface_Qml - Fatal编程技术网

Qt 当UI屏幕为';已加载';?

Qt 当UI屏幕为';已加载';?,qt,user-interface,qml,Qt,User Interface,Qml,我一直在开发基于Qt/qml的ui 我对屏幕使用了类似“动态需求加载”的功能。(使用加载器元件) 优点:启动时无需加载所有屏幕,缩短了系统启动时间 缺点:当以后需要加载屏幕时,这需要时间,并且会降低用户的响应速度 我的问题是,当我说加载UI屏幕时,内存中实际“加载”了什么 我的意思是,如果它的C++代码,我会理解它,就像正在创建一些动态对象一样。我不能想象它在UI屏幕方面?它是否像我在制作UI时使用的图像一样被加载到内存中以进行不同的操作 除了前面的问题,当我“卸载”屏幕时会发生什么 加载和卸载

我一直在开发基于Qt/qml的ui

我对屏幕使用了类似“动态需求加载”的功能。(使用加载器元件)

优点:启动时无需加载所有屏幕,缩短了系统启动时间

缺点:当以后需要加载屏幕时,这需要时间,并且会降低用户的响应速度

我的问题是,当我说加载UI屏幕时,内存中实际“加载”了什么

我的意思是,如果它的C++代码,我会理解它,就像正在创建一些动态对象一样。我不能想象它在UI屏幕方面?它是否像我在制作UI时使用的图像一样被加载到内存中以进行不同的操作

除了前面的问题,当我“卸载”屏幕时会发生什么


加载和卸载的CPU要求相同吗?

当使用loader加载QML对象时,程序实际上会在QML文件中每个元素的内存中创建一个对象(调用该元素类的构造函数)。您可以将文件中的任何QML元素看作相应的C++类。
卸载这些视图时,将调用每个元素的析构函数。因此,最后一个问题的答案是,加载和卸载的CPU要求会有所不同。

有非常详细的说明,说明性引擎加载qml文件时会发生什么:


非常感谢链接sergk。还有一个疑问,当我们运行qml代码时,所有这些步骤都会发生吗?或者它像普通C++可执行文件,在那里你可以编译一次并运行它,而不需要重新编译。加载Qualy和绑定只需运行一次,当你加载一个QML文件。每次发出连接信号时,绑定表达式(生成的javascript字节码)都会运行。