C++ Qt/QML:我该怎么做;切换到";或;开放式;是否在不重新启动我的应用程序的情况下创建另一个QML文件?
我有一个小应用程序,它从服务器加载一个QML文件,并向用户显示某种“书架” >用户可以选择显示的书籍中的一个,C++将在后台下载一个zip文件,解包。结果是文件系统中的每本书都有一个文件夹,其中包含一个“main.qml”文件,该文件基本上是该书的自包含版本,允许用户浏览/缩放等 我正在使用C++ Qt/QML:我该怎么做;切换到";或;开放式;是否在不重新启动我的应用程序的情况下创建另一个QML文件?,c++,qt,qml,qqmlapplicationengine,C++,Qt,Qml,Qqmlapplicationengine,我有一个小应用程序,它从服务器加载一个QML文件,并向用户显示某种“书架” >用户可以选择显示的书籍中的一个,C++将在后台下载一个zip文件,解包。结果是文件系统中的每本书都有一个文件夹,其中包含一个“main.qml”文件,该文件基本上是该书的自包含版本,允许用户浏览/缩放等 我正在使用ApplicationWindow在其QML文件中显示书架,现在我想知道“切换”到书本并在ApplicationWindow中显示它的最佳方法是什么。我的意思是,如果书架基本上是从内存中“卸载”到书籍展示的可
ApplicationWindow
在其QML文件中显示书架,现在我想知道“切换”到书本并在ApplicationWindow中显示它的最佳方法是什么。我的意思是,如果书架基本上是从内存中“卸载”到书籍展示的可用资源,那就太好了
我该怎么做
我的粗略想法(感觉不太“正确”)是:
- 使用
加载另一个URLQQmlApplicationEngine::load()
- 将书籍的QML组件作为最顶层的子对象添加到书架;但这将导致大量资源浪费
任何建议都将不胜感激 最基本的解决方案是在应用程序窗口中使用
加载程序。在实例化时使用main.qml
设置它,然后当用户选择一本书时,将Loader
的源设置为该书的qml文件
但是,最好动态加载“屏幕”,然后在销毁前一个屏幕之前使用转换效果。您可以从QML的Javascript上下文中手动创建/销毁QML组件: