У меня есть небольшое приложение, которое загружает QML-файл с сервера и отображает пользователю какую-то «книжную полку».Qt/QML: Как я могу «переключиться на» или «открыть» другой файл QML без перезагрузки моего приложения?
Пользователь может выбрать одну из отображаемых книг, а C++ загрузит ZIP-файл в фоновом режиме, распакует его. Результатом является папка для каждой книги в файловой системе с файлом «main.qml», который является в основном автономной версией книги, позволяющей пользователю просматривать/масштабировать/и т. Д.
Я использую ApplicationWindow
для отображения книжную полку в своем файле QML, и теперь я задаюсь вопросом, что было бы лучше подход к «переключатель» в книге и отобразить его в ApplicationWindow. К best Я имею в виду, было бы неплохо, если бы книжная полка в значительной степени «выгружалась» из памяти в свободные ресурсы для отображения книги.
Как мне это сделать?
Мои грубые идеи, которые не чувствуют себя вполне «правильно» были:
- Используйте
QQmlApplicationEngine::load()
, чтобы загрузить другой URL? - Добавить компонент QML книги как самый верхний дочерний объект на полку; но это приведет к большому количеству потраченных впустую ресурсов.
- ...?
Любые предложения приветствуются!
Вы можете вручную создавать/уничтожать компоненты QML из контекста Javascript QML: http://doc.qt.io/qt-5/qtqml-javascript-dynamicobjectcreation.html – MrEricSir