QML
| Класс языка: | |
|---|---|
| Появился в: |
2009 |
| Автор(ы): | |
| Расширение файлов: |
|
| Релиз: |
4.8.3[1] |
| Испытал влияние: |
JavaScript, Qt, CSS |
| Сайт: |
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.
Примечания [править]
- ↑ Qt 4.8.2 Released (22 May 2012). Архивировано из первоисточника 11 августа 2012.
- ↑ GettingStartedQMLRussian | Qt Wiki | Qt Developer Network
- ↑ Qt 4.7: QML Elements. Doc.qt.nokia.com. Архивировано из первоисточника 11 августа 2012. Проверено 22 сентября 2010.
Ссылки [править]
- Введение в QML (рус.)
- QML примеры и Демо (англ.)
- Qt Labs блог, связанный с QML (англ.)
- обучение QML (англ.)

