QML

Поделись знанием:
Перейти к: навигация, поиск
QML
Класс языка:

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

Появился в:

2009

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

.qml

Выпуск:

2.7[1]

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

JavaScript, Qt, CSS

Сайт:

[doc.qt.io/qt-5/qtquick-qmlmodule.html io/qt-5/qtquick-qmlmodule.html]

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

QML-документ представляет собой дерево элементов. QML элемент[3], так же, как и элемент 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 и выше).

Напишите отзыв о статье "QML"

Примечания

  1. [blog.qt.io/blog/2016/06/16/qt-5-7-released// Qt 5.7 released] (June 16, 2016).
  2. [developer.qt.nokia.com/wiki/GettingStartedQMLRussian GettingStartedQMLRussian | Qt Wiki | Qt Developer Network]
  3. [doc.qt.nokia.com/4.7/qdeclarativeelements.html Qt 4.7: QML Elements]. Doc.qt.nokia.com. Проверено 22 сентября 2010. [www.webcitation.org/69pnStMHl Архивировано из первоисточника 11 августа 2012].

Ссылки

  • [qt-project.org/wiki/GettingStartedQMLRussian Введение в QML]  (рус.)
  • [doc.qt.nokia.com/4.7-snapshot/qdeclarativeexamples.html QML примеры и Демо]  (англ.)
  • [web.archive.org/web/20090518012534/labs.trolltech.com/blogs/category/labs/graphics/kinetic/declarative_ui/ Qt Labs блог, связанный с QML]  (англ.)
  • [play.google.com/store/apps/details?id=com.wearyinside.qmlcreator QML Creator] для Android

Отрывок, характеризующий QML

Наташа вышла вместе с отцом и, как будто с трудом соображая что то, сначала пошла за ним, а потом побежала вниз.
На крыльце стоял Петя, занимавшийся вооружением людей, которые ехали из Москвы. На дворе все так же стояли заложенные подводы. Две из них были развязаны, и на одну из них влезал офицер, поддерживаемый денщиком.
– Ты знаешь за что? – спросил Петя Наташу (Наташа поняла, что Петя разумел: за что поссорились отец с матерью). Она не отвечала.
– За то, что папенька хотел отдать все подводы под ранепых, – сказал Петя. – Мне Васильич сказал. По моему…
– По моему, – вдруг закричала почти Наташа, обращая свое озлобленное лицо к Пете, – по моему, это такая гадость, такая мерзость, такая… я не знаю! Разве мы немцы какие нибудь?.. – Горло ее задрожало от судорожных рыданий, и она, боясь ослабеть и выпустить даром заряд своей злобы, повернулась и стремительно бросилась по лестнице. Берг сидел подле графини и родственно почтительно утешал ее. Граф с трубкой в руках ходил по комнате, когда Наташа, с изуродованным злобой лицом, как буря ворвалась в комнату и быстрыми шагами подошла к матери.
– Это гадость! Это мерзость! – закричала она. – Это не может быть, чтобы вы приказали.
Берг и графиня недоумевающе и испуганно смотрели на нее. Граф остановился у окна, прислушиваясь.
– Маменька, это нельзя; посмотрите, что на дворе! – закричала она. – Они остаются!..
– Что с тобой? Кто они? Что тебе надо?
– Раненые, вот кто! Это нельзя, маменька; это ни на что не похоже… Нет, маменька, голубушка, это не то, простите, пожалуйста, голубушка… Маменька, ну что нам то, что мы увезем, вы посмотрите только, что на дворе… Маменька!.. Это не может быть!..
Граф стоял у окна и, не поворачивая лица, слушал слова Наташи. Вдруг он засопел носом и приблизил свое лицо к окну.
Графиня взглянула на дочь, увидала ее пристыженное за мать лицо, увидала ее волнение, поняла, отчего муж теперь не оглядывался на нее, и с растерянным видом оглянулась вокруг себя.
– Ах, да делайте, как хотите! Разве я мешаю кому нибудь! – сказала она, еще не вдруг сдаваясь.
– Маменька, голубушка, простите меня!
Но графиня оттолкнула дочь и подошла к графу.
– Mon cher, ты распорядись, как надо… Я ведь не знаю этого, – сказала она, виновато опуская глаза.
– Яйца… яйца курицу учат… – сквозь счастливые слезы проговорил граф и обнял жену, которая рада была скрыть на его груди свое пристыженное лицо.
– Папенька, маменька! Можно распорядиться? Можно?.. – спрашивала Наташа. – Мы все таки возьмем все самое нужное… – говорила Наташа.
Граф утвердительно кивнул ей головой, и Наташа тем быстрым бегом, которым она бегивала в горелки, побежала по зале в переднюю и по лестнице на двор.
Люди собрались около Наташи и до тех пор не могли поверить тому странному приказанию, которое она передавала, пока сам граф именем своей жены не подтвердил приказания о том, чтобы отдавать все подводы под раненых, а сундуки сносить в кладовые. Поняв приказание, люди с радостью и хлопотливостью принялись за новое дело. Прислуге теперь это не только не казалось странным, но, напротив, казалось, что это не могло быть иначе, точно так же, как за четверть часа перед этим никому не только не казалось странным, что оставляют раненых, а берут вещи, но казалось, что не могло быть иначе.
Все домашние, как бы выплачивая за то, что они раньше не взялись за это, принялись с хлопотливостью за новое дело размещения раненых. Раненые повыползли из своих комнат и с радостными бледными лицами окружили подводы. В соседних домах тоже разнесся слух, что есть подводы, и на двор к Ростовым стали приходить раненые из других домов. Многие из раненых просили не снимать вещей и только посадить их сверху. Но раз начавшееся дело свалки вещей уже не могло остановиться. Было все равно, оставлять все или половину. На дворе лежали неубранные сундуки с посудой, с бронзой, с картинами, зеркалами, которые так старательно укладывали в прошлую ночь, и всё искали и находили возможность сложить то и то и отдать еще и еще подводы.