Система типов QML

Добавлено 11 мая 2022 в 05:17

Типы, которые могут использоваться в определении иерархии объектов в документе QML, могут поступать из различных источников. Они могут быть:

  • изначально предоставлены языком QML;
  • зарегистрированы через C++ модулями QML;
  • предоставлены модулями QML в виде документов QML.

Кроме того, разработчики приложений могут предоставлять свои собственные типы, либо напрямую регистрируя типы C++, либо определяя повторно используемые компоненты в документах QML, которые затем можно импортировать.

Откуда бы ни брались определения типов, движок будет обеспечивать типобезопасность для свойств и экземпляров этих типов.

Базовые типы

Язык QML имеет встроенную поддержку различных примитивных типов, включая целые числа, числа с плавающей запятой двойной точности, строки и логические значения. Объекты могут иметь свойства этих типов, и значения этих типов могут передаваться в качестве аргументов методам объектов.

Дополнительную информацию об основных типах смотрите в разделе «Базовые типы QML».

Типы JavaScript

Объекты и массивы JavaScript поддерживаются механизмом QML. Любой стандартный тип JavaScript может быть создан и сохранен с использованием универсального типа var.

Например, доступны стандартные типы Date и Array, как показано ниже:

import QtQuick 2.0

Item {
    property var theArray: []
    property var theDate: new Date()

    Component.onCompleted: {
        for (var i = 0; i < 10; i++)
            theArray.push("Item " + i)
        console.log("There are", theArray.length, "items in the array")
        console.log("The time is", theDate.toUTCString())
    }
}

Дополнительную информацию смотрите в разделе «Выражения JavaScript в документах QML».

Объектные типы QML

Объектный тип QML – это тип, из которого может быть создан экземпляр объекта QML. Объектные типы QML являются производными от QtObject и предоставляются модулями QML. Приложения могут импортировать эти модули, чтобы использовать предоставляемые ими объектные типы. Модуль QtQuick предоставляет наиболее распространенные объектные типы, необходимые для создания пользовательских интерфейсов в QML.

Наконец, каждый документ QML неявно определяет объектный тип QML, который можно повторно использовать в других документах QML. Подробную информацию о типах объектов смотрите в разделе «Объектные типы QML».

Теги

GUI / Графический интерфейс пользователяQMLQtQtQuickПрограммированиеТипы данных

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.