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

QML
Парадигма:мульти-парадигмова: декларативна, реактивна, скриптова
Дата появи:2009
Розробник:Qt Project
Останній реліз:5.1.0[1] (3 липня, 2013; 6 років тому (2013-07-03))
Система типізації:динамічна, строга
Під впливом від:JavaScript, Qt
Вплинула на:Qt
Сторінка інтернет:For Developers

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"
     anchors.centerIn: parent
     x: canvas.height / 5
   }
 }

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

Інструменти розробкиРедагувати

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

ВиноскиРедагувати

  1. Digia Releases Qt 5.1. July 3, 2013. Архів оригіналу за серпень 6, 2013. Процитовано вересень 11, 2013. 
  2. Henrik Hartz (Product Manager for Qt Software at Nokia) comment on the name. 24 August 2009. Архів оригіналу за 2011-07-23. Процитовано 2011-06-14. 
  3. [http://developer.qt.nokia.com/wiki/GettingStartedQMLRussian GettingStartedQMLRussian | Qt Wiki | Qt Developer Network
  4. Qt 4.7: QML Elements. Doc.qt.nokia.com. Архів оригіналу за 2012-08-11. Процитовано 2010-09-22. 

ПосиланняРедагувати