Общий QML
Запись от Wyn размещена 15.04.2016 в 14:30
Показов 8121
Комментарии 10
Метки javascript, qml
|
Данный цикл статей представляет собой частично FAQ, частично шпаргалку различных костылей и описаний подводных камней, встречаемых при работе с QML. В данную статью постепенно будут заноситься вся подобная платформонезависимая информация о QML. Для специфичных знаний о конкретных платформах - PC, Android и т.д. будут созданы отдельные статьи, на которые будет дана ссылка в конце документа. Любая конструктивная критика, пожелания и отзывы - приветствуются. Сообщения по поводу орфографических и грамматических ошибок(коих тут много, знаю) лучше кидать в личку. =) Общий QML Оглавление
Основы Правила QML
Свойства и соединения Свойства(property) бывают встроенные в элемент и дополнительные. Дополнительные свойства объявляются в QML-элементе с помощью: [default | readonly] property <propertyType> <propertyName>: <binding>где:
При создании любого QML-свойства автоматически создаётся сигнал <propertyName>Changed, вызываемый каждый раз, когда свойство изменяется, и связанный с сигналом обработчик on<propertyName>Changed (Учтите, что тут <propertyName> будет начинаться с большой буквы), в котором можно обработать изменение свойства.Пример
Изменение свойств осуществляется двумя способами:
Динамическое создание объектов Динамическое создание объектов в QML обычно востребовано по двум разным причинам:
Пример создания динамического самоудаляемого элемента на примере Dialog
Также существует элемент Loader, который может динамически загружать элементы и файлы QML. JavaScript Есть собственно два типа js файлов в qml - обычные и библиотеки. Обычные файлы JS при подключении в qml создаются и выполняются в пространстве имён подключённого qml файла. Библиотеки содержат в себе объявление .pragma library. Они имеют своё собственное пространство имён и создаются только один раз.Подключать другие файлы js из js файлов можно с помощью .import "файл.js".Перевод приложения http://doc.qt.io/qt-5/qtquick-... ation.html Маркировка строк перевода в QML осуществляется в основном с помощью функции qsTr(text)(есть и дополнительные функции вида "qsTr..." - смотрите по ссылке).
Ну и куда же без костылей, приберёг их на последок: lupdate, к сожалению, проверяет в проекте файлы только в списках SOURCES и HEADERS. Это значит, что файлы расположенные в других списках, а также в ресурсах, останутся без его внимания. Поэтому применяют костыль в виде lupdate_only:
Действия при переводе - стандартные:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Метки javascript, qml
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 10
Комментарии
-
Запись от Avazart размещена 16.04.2016 в 11:04
-
Запись от Wyn размещена 17.04.2016 в 15:49
-
Ошибочным переводом, не более. Переменная и свойство это разные вещи.
Приведите хотя бы одну книгу где свойства в контексте Qt называю переменными.
Ну давайте тогда что бы совсем было понятно будем называть это просто "фиговиной" ?
Переменная - это именованная область памяти.
Свойство - способ доступа к внутреннему состоянию объекта, имитирующий переменную некоторого типа.
https://ru.wikipedia.org/wiki/... 8%D0%B5%29
https://ru.wikipedia.org/wiki/... 8%D0%B5%29Запись от Avazart размещена 18.04.2016 в 22:07
-
Запись от Wyn размещена 26.04.2016 в 21:38
-
Кстати в контексте QML все же одно из главных понятий это не свойства (или переменные), а атрибуты. Свойство это всего лишь один из типов атрибутов...
Запись от pav1uxa размещена 08.05.2016 в 10:53
-
Оптимизации чего?
Сообщение от Wyn
Тут скорее контекст С++Qt, в С++Qt свойства используются для того что бы состояние объекта было видимо и доступно из вне, в данном случае из QML
Сообщение от pav1uxa
(так же используется для доступа из QScript/QJSEngine и главное для того что бы можно было редактировать виджеты визуально в дизайнере форм)
В скриптах же "свойства" менее выражены ибо нет такой необходимости ибо обычно отсутствуют модификаторы доступа.
C QML дела чуть сложнее ибо он заточен на взаимодействие С++Qt и нужно дергать сигналы/слоты.Запись от Avazart размещена 08.05.2016 в 12:13
-
Да, но я имею ввиду в общем смысле. Статья то называется QML. Было бы неплохо упомянуть про атрибуты и какие они бывают...
Сообщение от Avazart
Запись от pav1uxa размещена 08.05.2016 в 12:20
-
Думаю да, не помешало бы, но тогда бы вероятно пришлось бы пересказывать все что в документации
Сообщение от pav1uxa
Запись от Avazart размещена 08.05.2016 в 12:39
-
Не отрицаю. Но если подходить к теме с этой стороны, то там очень много переводить надо. Пока что времени на это нет, в свободное время сейчас пытаюсь сделать элемент Callout по аналогии с Rectagnle. Как его доделаю и время появится - переработаю и дополню статью.
Сообщение от pav1uxa
Оптимизации, наблюдения по поведению(подводные камни) QML и QML-обвязки, может ссылки какие-нибудь интересные по теме, которые попались в работе. Это наиболее интересно. Вот я, к примеру, замечал, что autoscale из Qt 5.6 применительно к Image в Android 5 не применяется, а в Android 6 - применяется. Хочется статью по этой теме написать, но материала по подобным подводным камням пока очень мало.
Сообщение от Avazart
Запись от Wyn размещена 20.05.2016 в 13:56
-
Запись от Avazart размещена 20.05.2016 в 16:05


