Spec-Zone.ru › Qt 5.6

Прототипирование с помощью 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/archives/qt-5.6/qtquick-qmlscene.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API