QML

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 9 декабря 2016 года; проверки требуют25 правок.
Перейти к навигацииПерейти к поиску
QML
Класс языкадекларативный,скриптовый
Появился в2009
РазработчикQt Project
Расширение файлов.qml
Выпуск6.4[1] (29 сентября 2022; 3 года назад (2022-09-29))
Испытал влияниеJavaScript,Qt,CSS
Сайтdoc.qt.io/qt-5/qtquick-q…

QML (Qt Meta Language илиQt Modeling Language[2]) —декларативный язык программирования, в основании которого лежит средаJavaScript. QML используется для разработки приложений, делающих основной упор напользовательский интерфейс[3] и, в целом, на дизайн графической части. Является частьюQt Quick, среды разработки пользовательского интерфейса, распространяемой вместе сQt. Часто используется для создания приложений, ориентированных на мобильные устройства с сенсорным управлением.

QML-документ представляет собой дерево элементов. QML элемент[4], также как и элемент Qt, представляет собой совокупность блоков: графических (таких, как rectangle, image) и поведенческих (таких, как state, transition, animation). Эти элементы могут быть объединены, чтобы построить комплексные компоненты, начиная от простых кнопок и ползунков и заканчивая полноценными приложениями, работающими с интернетом.

QML элементы могут быть дополнены стандартными дляJavaScript вставками путём встраивания .js файлов. Также они могут быть расширеныC++ компонентами черезQt framework.

QML - это язык разметки; его средой выполнения JavaScript являлся пользовательский движок V4.[5]

Код QML и JavaScript может быть скомпилирован в собственные двоичные файлы C++ с помощью Qt Quick Compiler.[6] Для удобства разработки существует формат файла кэша QML[7] который динамически сохраняет скомпилированную версию QML для более быстрого старта при следующем запуске.

Содержание

Синтаксис, семантика

[править |править код]

Пример:

importQtQuick1.0Rectangle{id:canvaswidth:200height:200color:"blue"Image{id:logosource:"pics/logo.png"x:canvas.height/5}Text{id:messagecolor:"white"text:"Hello World!"anchors.centerIn:parent}}

Объекты задаются их типом, указанным перед парой фигурных скобок. Типы объектов всегда начинаются с заглавной буквы. В вышеупомянутом примере есть два объекта: Image и Text. Внутри фигурных скобок можно задать информацию об объекте, например, его свойства. Свойства задаются в виде <свойство>: <значение>. В этом примере у объекта Image есть свойство source, которому присвоено значение «pics/logo.png». Свойство и его значение разделяются двоеточием.

В отличие от присвоения значений в традиционных языках в QML символ двоеточиясвязывает свойства и его значение. Так в примере свойство «x» связывается со значением, получаемым при вычислении формулы «canvas.height / 5», и при любом изменении высоты (height) объекта Rectangle горизонтальная позиция (x) вставленной картинки Image будет автоматически изменяться на пятую часть высоты Rectangle.

Инструменты разработки

[править |править код]

Так как QML и JavaScript очень похожи, то любые среды разработки, поддерживающие JavaScript, могут быть использованы для работы с QML. Также полная поддержка подсветки синтаксиса, автозавершение кода, встроенная справочная система, отладчик доступны в кросс-платформенной среде разработкиQt Creator IDE (с версии 2.1 и выше).

См. также

[править |править код]

Примечания

[править |править код]
  1. Qt 6.4 Released.Архивировано 17 октября 2022. Дата обращения: 6 ноября 2022.
  2. Henrik Hartz (Product Manager for Qt Software at Nokia) comment on the name  (24 августа 2009). Дата обращения: 29 мая 2013. Архивировано изоригинала 25 марта 2014 года.
  3. GettingStartedQMLRussian | Qt Wiki | Qt Developer Network . Дата обращения: 11 июня 2011. Архивировано изоригинала 1 марта 2011 года.
  4. Qt 4.7: QML Elements . Doc.qt.nokia.com. Дата обращения: 22 сентября 2010. Архивировано изоригинала 11 августа 2012 года.
  5. Knoll, Lars. Evolution of the QML engine, part 1  (15 апреля 2013). Дата обращения: 11 мая 2018. Архивировано 12 мая 2018 года.
  6. Qt Quick Compiler . Дата обращения: 7 сентября 2019. Архивировано 29 сентября 2019 года.
  7. Deploying QML Applications | Qt 5.13 . doc.qt.io. Дата обращения: 7 сентября 2019. Архивировано 25 сентября 2019 года.

Ссылки

[править |править код]
Перейти к шаблону «Qt»
Технологии
Инструменты
Привязки
Связанные темы
Источник —https://ru.wikipedia.org/w/index.php?title=QML&oldid=149922430
Категории:
Скрытые категории: