QML

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
QML
Класс языка декларативный, скриптовый
Появился в 2009
Разработчик Qt Project
Расширение файлов ..qml
Выпуск 2.7[1] (2016-06-16; 974 дня тому назад)
Испытал влияние JavaScript, Qt, CSS
Сайт doc.qt.io/qt-5/qtquick-q…

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

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

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

Синтаксис, семантика[править | править код]

Пример:

import QtQuick 1.0

 Rectangle {
     id: canvas
     width: 200
     height: 200
     color: "blue"

     Image {
         id: logo
         source: "pics/logo.png"
         x: canvas.height / 5
     }

     Text {
         id: message
         color: "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 5.7 released (June 16, 2016).
  2. Henrik Hartz (Product Manager for Qt Software at Nokia) comment on the name (недоступная ссылка) (24 August 2009). Проверено 29 мая 2013. Архивировано 25 марта 2014 года.
  3. GettingStartedQMLRussian | Qt Wiki | Qt Developer Network
  4. Qt 4.7: QML Elements. Doc.qt.nokia.com. Проверено 22 сентября 2010. Архивировано 11 августа 2012 года.

Ссылки[править | править код]