Qt / QML: Как мне перейти на & quot; или «открыть» другой файл QML без перезапуска моего приложения?

У меня есть небольшое приложение, которое загружает файл QML с сервера и отображает пользователю своего рода «книжную полку».

Пользователь может выбрать одну из отображаемых книг, и C ++ загрузит ZIP-файл в фоновом режиме, распакует его. Результатом является папка для каждой книги в файловой системе с файлом «main.qml», который по сути является автономной версией книги, позволяющей пользователю просматривать / zoom / etc.

я использую ApplicationWindow отобразить книжную полку в своем файле QML, и теперь мне интересно, что будет Лучший Подход «переключиться» на книгу и отобразить его в ApplicationWindow. От Лучший Я имею в виду, было бы неплохо, если бы книжная полка в значительной степени «выгружалась» из памяти, чтобы освободить ресурсы для отображения книги.

Как бы я это сделал?

Мои грубые идеи, которые кажутся мне не совсем правильными:

  • использование QQmlApplicationEngine::load() загрузить другой URL?
  • Добавьте компонент QML книги как верхний дочерний объект на полку; но это приведет к большим потерям ресурсов.
  • …?

Любые предложения приветствуются!

1

Решение

Самое основное решение было бы просто использовать Loader в окне вашего приложения. Установите его использовать свой main.qml при создании экземпляра, а затем, когда пользователь выбирает книгу, установите Loaderисточник в QML-файл книги.

Однако было бы лучше динамически загружать «экраны», тогда вы могли бы использовать эффекты перехода до разрушения предыдущего экрана.

0

Другие решения


По вопросам рекламы [email protected]