gpt4 book ai didi

c++ - Qt/QML : How do I "switch to" or "open" another QML file without restarting my app?

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:20 27 4
gpt4 key购买 nike

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

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

我正在使用 ApplicationWindow 在其 QML 文件中显示书架,现在我想知道“切换”到book 并将其显示在 ApplicationWindow 中。 最好 我的意思是,如果书架几乎从内存中“卸载”以释放资源用于书籍展示,那就太好了。

我该怎么做?

我的粗略想法,感觉不太“正确”是:

  • 使用 QQmlApplicationEngine::load() 加载另一个 URL?
  • 将图书的 QML 组件作为最顶层的子对象添加到书架;但这会导致大量资源浪费。
  • ...?

如有任何建议,我们将不胜感激!

最佳答案

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

然而,动态加载“屏幕”会更好,这样您就可以在销毁前一个屏幕之前使用过渡效果。

关于c++ - Qt/QML : How do I "switch to" or "open" another QML file without restarting my app?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28327168/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com