Ссылка на qml.def файл. Для установки нужно скопировать файл в папку $FISHEYE_INST/syntax и перезапустить crusible.
Внешний вид:
пятница, ноября 09, 2012
пятница, ноября 02, 2012
Как указать путь к картинкам из QML, запакованного в ресурсный файл.
Проблема обсуждается тут. По большому счёту, это решение сейчас единственное:
О чем оно?
Указанный выше пример не будет работать, если qml упаковать в ресурсы и загрузить через setSource. Решение в оригинальном топике, говорит, что мы можем прокинуть в qml из с++ переменную, содержащую путь к нашей папке с картинками, тогда:
Будет работать. Однако, когда qml верстается это становится головной болью - эту переменную нужно будет определять в рутовом элементе, чтобы в нем и дочерних она была доступна. Не забыть удалить её перед сборкой ресурсного файла, т.к. setContextProperty из вашего с++ приложения будет переопределена уже в qml. Отлаживать при этом маленькие компоненты тоже не удобно - придется дублировать imagePath property и в них тоже.
В голову пришла забавная идея. А давайте напишем qml extension (https://github.com/misterion/QmlViewerDevHelper), который распарсит аргументы командной строки и позволит выставить проперти. QmlViewer имеет несколько аргументов(I/P), который отвечают за добавление папок к импорту dll. Они не валидируются и не ругаются, если в них написана ересь, т.е. можно написано -I "что угодно".
Напишем Qt Creator (Проекты -> Запуск)
Добавим dll и qmldir в папку с плагинами (%QtDir%\%version%\imports). И запустим QmlViewer - теперь указанная нами переменная автоматом пробросится в qml.
Это очень удобно. Тем более, что параметры запуска QmlViewer хранятся в qmlproject.user и их не нужно комитить в репозитарий.
- #if defined(Q_OS_MAC)
- imagePath = "file://"+imagePath;
- #endif
- QDeclarativeContext::setContextProperty("imagePath",imagePath);
О чем оно?
- Image {
- id: image1
- source: "images/face.png"
Указанный выше пример не будет работать, если qml упаковать в ресурсы и загрузить через setSource. Решение в оригинальном топике, говорит, что мы можем прокинуть в qml из с++ переменную, содержащую путь к нашей папке с картинками, тогда:
- Image {
- id: image1
- source: imagePath + "images/face.png"
Будет работать. Однако, когда qml верстается это становится головной болью - эту переменную нужно будет определять в рутовом элементе, чтобы в нем и дочерних она была доступна. Не забыть удалить её перед сборкой ресурсного файла, т.к. setContextProperty из вашего с++ приложения будет переопределена уже в qml. Отлаживать при этом маленькие компоненты тоже не удобно - придется дублировать imagePath property и в них тоже.
В голову пришла забавная идея. А давайте напишем qml extension (https://github.com/misterion/QmlViewerDevHelper), который распарсит аргументы командной строки и позволит выставить проперти. QmlViewer имеет несколько аргументов(I/P), который отвечают за добавление папок к импорту dll. Они не валидируются и не ругаются, если в них написана ересь, т.е. можно написано -I "что угодно".
Напишем Qt Creator (Проекты -> Запуск)
Добавим dll и qmldir в папку с плагинами (%QtDir%\%version%\imports). И запустим QmlViewer - теперь указанная нами переменная автоматом пробросится в qml.
Это очень удобно. Тем более, что параметры запуска QmlViewer хранятся в qmlproject.user и их не нужно комитить в репозитарий.
Подписаться на:
Комментарии
(
Atom
)