Прототипирование с qmlscene
Qt 5 включает qmlscene, утилиту, которая загружает и отображает документы QML даже до завершения приложения. Эта утилита также предоставляет следующие дополнительные функции, полезные при разработке приложений QML:
- Отображение документа QML в окне максимального размера.
- Отображение документа QML в полноэкранном режиме.
- Установление прозрачности окна.
- Отключение многократной выборки (сглаживания).
- Отключение проверки версии файла .qml.
- Запуск всех анимаций в замедленном режиме.
- Изменение размера окна до размера корневого элемента.
- Добавление списка путей импорта.
- Добавление набора с именем.
- Использование файла перевода для установки языка.
Утилита qmlscene предназначена для тестирования ваших приложений QML, а не для запуска в производственной среде. Для запуска приложения QML в производственной среде разработайте пользовательское приложение C++ или включите файл QML в модуль. Дополнительную информацию см. в разделе Развертывание приложений QML.
Для загрузки файла .qml запустите инструмент и выберите файл для открытия или укажите путь к файлу в командной строке:
qmlscene myqmlfile.qml
Чтобы увидеть параметры конфигурации, запустите qmlscene с аргументом -help.
Добавление путей импорта модулей
Дополнительные пути импорта модулей можно указать с помощью флага -I. Например, пример плагина QML Пример плагина QML создаёт плагин C++ с именем пространства имён TimeExample. Чтобы загрузить плагин, необходимо запустить qmlscene с флагом -I из базового каталога примера:
qmlscene -I imports plugins.qml
Это добавляет текущий каталог в путь импорта, так что qmlscene найдёт плагин в каталоге imports.
Примечание: По умолчанию текущий каталог включён в путь поиска импорта, но модули в пространстве имён, таком как TimeExample, не будут найдены, если путь не указан явно.
Загрузка тестовых данных
Часто приложения QML прототипируются с тестовыми данными, которые впоследствии заменяются реальными источниками данных из плагинов C++. Утилита qmlscene помогает в этом аспекте, загружая тестовые данные в контекст приложения. Она ищет каталог с именем dummydata в той же директории, что и целевой файл QML, и загружает файлы .qml в этом каталоге как объекты QML, привязывая их к корневому контексту как свойства с именами, соответствующими именам файлов.
Например, следующий документ QML ссылается на свойство lottoNumbers, которого нет в документе:
import QtQuick 2.3
ListView {
width: 200; height: 300
model: lottoNumbers
delegate: Text { text: number }
} Если в каталоге документа есть каталог dummydata, содержащий файл lottoNumbers.qml следующего вида:
import QtQuick 2.3
ListModel {
ListElement { number: 23 }
ListElement { number: 44 }
ListElement { number: 78 }
} Тогда эта модель будет автоматически загружена в ListView в предыдущем документе.
Вложенные свойства включаются при загрузке из dummydata. Следующий документ ссылается на свойство clock.time.
import QtQuick 2.3
Text { text: clock.time } Значение текста может быть заполнено файлом dummydata/clock.qml со свойством time в корневом контексте:
import QtQuick 2.3
QtObject { property int time: 54321 } Чтобы заменить это реальными данными, привяжите объект с реальными данными к корневому контексту в C++ с помощью QQmlContext::setContextProperty(). Подробное описание этого процесса представлено в Интеграция QML и C++.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qtquick-qmlscene.html