QML, язык описания интерфейса

Qt Markup Langue - декларативный язык интерфейса пользователя. Он совместим с фреймворком Qt и взаимодействует со своим API. Его можно расширить с помощью кода C, содержащего вызовы к этому API.

Для его использования добавляется время выполнения декларации Qt к времени выполнения Qt.

Capture d'écran de démos QML
Демонстрация QML: галерея и браузер

Зачем использовать QML

?

Создание интерфейса под Qt проще с QML, так как проще описать Java-интерфейс с JavaFX, который похож (в то время как другие платформы выбрали код, производный от XML, например, XAML).
Достаточно инструкции, чтобы показать «Hello World!» против семи с Qt, как мы видим в списке «Привет, мир!» на всех языках .

Однако обработка может быть гораздо медленнее, чем при использовании прямых вызовов к функциям фреймворка Qt, а также язык лучше подходит для небольших приложений с простым интерфейсом и меньше для более тяжелых приложений. Можно также использовать QML на этапе разработки, а затем оптимизировать конечное приложение, переведя его на Qt, если он слишком медленный.
Как правило, рекомендуется использовать QML для мобильных устройств и QT только на рабочем столе, без сокращения времени загрузки с QML.

По словам редактора, поскольку runtime установлен на сервере, QML-приложение может работать в Сети с HTTP, что делает его альтернативой HTML. Можно также создать HTML-страницу, которая будет отображаться в браузере и работать с JavaScript.

QML имеет синтаксис JSON, а не XML

Выбор синтаксиса, вдохновленного С, позволяет быстрее обрабатывать файлы и уменьшить размер. Это также принцип JSON.

Примеры кода

У Дроу есть прямоугольник со словами «Привет, мир!».

Rectangle {
   width: 200
   height: 200
   color: mouse.pressed ? "blue" : "red"  
   Text {   
     text: "Salut le Monde!"   
     anchors.centerIn: parent   
   }  
}

Включить код JavaScript...

Rectangle {      
   function calculateHeight() 
   {
     ... calculs... 
     return x;      
   }      

   height: calculateHeight()      
   width: { 
      if (height > 100) 200; else 50 
   }  
}  

Подробнее на сайте Qt. На qt-project.org можно найти демонстрацию, показывающую, как реализовать интерфейс браузера в QML, со всеми необходимыми виджетами.