Какой предпочтительный способ включить источники QML в сборку приложения? - PullRequest
8 голосов
/ 11 октября 2010

Я создаю приложение со смешанными технологиями пользовательского интерфейса (в основном C ++ с некоторыми компонентами QML).

Предположим, у меня есть элемент QML, который я хочу показать внутри QDeclarativeView с использованием следующего синтаксиса:

view = new QDeclarativeView(QUrl::fromLocalFile("foobar.qml"));

Я добавил foobar.qml в мой проект в Qt Creator, который автоматически добавляет эту строку в файл .pro:

OTHER_FILES += \
    foobar.qml

Теперь можно ожидать, что включение файла в проект подразумевает, что он должен быть скопирован в папку сборки, но это не так, и я получаю ошибку об отсутствии файла foobar.qml в папке сборки при запуске приложение. Я бы не хотел добавлять пользовательские этапы сборки просто для копирования исходных текстов QML, так есть ли какой-то "де-факто" способ сделать это?

Ответы [ 2 ]

7 голосов
/ 11 октября 2010

Одним из очевидных решений было бы включение источника QML через систему ресурсов Qt . На странице документа есть подсказка о развертывании приложений на основе QML .

РЕДАКТИРОВАТЬ: Вот полное решение . Я должен научиться RTFM.

3 голосов
/ 28 января 2011

Вы используете теневые сборки? В этом случае приложение создается в каталоге, параллельном исходному коду. Для тестирования вы можете изменить рабочий каталог в Qt Creator (Проекты в левой панели, затем Выполнение вашей цели сборки). Использование ресурсов кажется надежным, но требует перестройки каждый раз, когда изменяется любой из ресурсов.

...