QML
QML | |
---|---|
Парадигма | мульти-парадигмова: декларативна, реактивна, скриптова |
Дата появи | 2009 |
Розробник | Qt Project |
Останній реліз | 5.1.0[1] (3 липня 2013 ) |
Система типізації | динамічна, строга |
Під впливом від | JavaScript, Qt |
Вплинула на | Qt |
Звичайні розширення файлів | .qml |
Вебсайт | For Developers |
QML (Qt Meta Language або 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"
anchors.centerIn: parent
x: canvas.height / 5
}
}
Об'єкти задаються їхнім типом, зазначеним перед парою фігурних дужок. Типи об'єктів завжди починаються з великої літери. У вищезгаданому прикладі є два об'єкти: Rectangle і Image. Усередині фігурних дужок можна задати інформацію про об'єкт, наприклад, його властивості. Властивості задаються у вигляді <властивість>: <значення>. У цьому прикладі в об'єкта Image є властивість source, якій присвоєно значення «pics/logo.png». Властивість та її значення розділяються двокрапкою.
Оскільки QML і JavaScript дуже схожі, то будь-які середовища розробки, що підтримують JavaScript, можуть бути використані для роботи з QML. Також повна підтримка підсвічування синтаксису, автозавершення коду, вбудована довідкова система доступні у крос-платформовому середовищі розробки Qt Creator, починаючи з версії 2.1.
- ↑ Digia Releases Qt 5.1. 3 липня 2013. Архів оригіналу за серпень 6, 2013. Процитовано вересень 11, 2013.
- ↑ Henrik Hartz (Product Manager for Qt Software at Nokia) comment on the name. 24 серпня 2009. Архів оригіналу за 23 липня 2011. Процитовано 14 червня 2011.
- ↑ [[https://web.archive.org/web/20110301113457/http://developer.qt.nokia.com/wiki/GettingStartedQMLRussian Архівовано 1 березня 2011 у Wayback Machine.] GettingStartedQMLRussian | Qt Wiki | Qt Developer Network
- ↑ Qt 4.7: QML Elements. Doc.qt.nokia.com. Архів оригіналу за 11 серпня 2012. Процитовано 22 вересня 2010.
- Введение в QML [Архівовано 17 червня 2013 у Wayback Machine.] (рос.)
- QML приклади і демо (англ.)
- Qt Labs блог, пов'язаний з QML (англ.)
- Навчання QML (англ.)