QML

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
QML
Класс языка:

декларативный, скриптовый

Появился в:

2009

Расширение файлов:

.qml

Релиз:

5.1.0[1]

Испытал влияние:

JavaScript, Qt, CSS

Сайт:

qt-project.org/doc/qt-5.1/qtquick/qtquick-index.html

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

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

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
     }
 }

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

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

Инструменты разработки[править | править вики-текст]

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

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]