Qt / QML:我如何切换到"或者"打开"另一个QML文件没有重新启动我的应用程序?

时间:2015-02-04 17:01:52

标签: c++ qt qml qqmlapplicationengine

我有一个小应用程序从服务器加载QML文件,并向用户显示某种“书架”。

用户可以选择一个显示的书籍,C ++将在后台下载ZIP文件,将其解压缩。结果是文件系统上每本书的文件夹,带有“main.qml”文件,该文件基本上是书籍的自包含版本,允许用户浏览/缩放/等。

我正在使用ApplicationWindow在其QML文件中显示书架,现在我想知道什么是最佳方法来“切换”到书中并显示它在ApplicationWindow中。通过 best 我的意思是,如果书架几乎从内存“卸载”到书籍显示的免费资源,那就太好了。

我该怎么做?

我感觉很不对劲的粗略想法是:

  • 使用QQmlApplicationEngine::load()加载其他网址?
  • 将书籍的QML组件作为最上面的子对象添加到书架中;但这会导致大量资源浪费。
  • ...?

任何建议都表示赞赏!

1 个答案:

答案 0 :(得分:0)

最基本的解决方案是在应用程序窗口中使用Loader。设置它在实例化时使用main.qml,然后当用户选择图书时,将Loader的来源设置为图书的QML文件。

然而,最好加载屏幕'动态地,然后你可以在销毁前一个屏幕之前使用转换效果。