У меня есть небольшое приложение, которое загружает файл QML с сервера и отображает пользователю своего рода «книжную полку».
Пользователь может выбрать одну из отображаемых книг, и C ++ загрузит ZIP-файл в фоновом режиме, распакует его. Результатом является папка для каждой книги в файловой системе с файлом «main.qml», который по сути является автономной версией книги, позволяющей пользователю просматривать / zoom / etc.
я использую ApplicationWindow
отобразить книжную полку в своем файле QML, и теперь мне интересно, что будет Лучший Подход «переключиться» на книгу и отобразить его в ApplicationWindow. От Лучший Я имею в виду, было бы неплохо, если бы книжная полка в значительной степени «выгружалась» из памяти, чтобы освободить ресурсы для отображения книги.
Как бы я это сделал?
Мои грубые идеи, которые кажутся мне не совсем правильными:
QQmlApplicationEngine::load()
загрузить другой URL?Любые предложения приветствуются!
Самое основное решение было бы просто использовать Loader
в окне вашего приложения. Установите его использовать свой main.qml
при создании экземпляра, а затем, когда пользователь выбирает книгу, установите Loader
источник в QML-файл книги.
Однако было бы лучше динамически загружать «экраны», тогда вы могли бы использовать эффекты перехода до разрушения предыдущего экрана.