Spec-Zone.ru › Qt 5.9

Основные типы QML

QML поддерживает ряд основных типов.

Основной тип — это тип, который ссылается на простое значение, такое как int или string. Это контрастирует с типами QML-объектов, которые ссылаются на объект с свойствами, сигналами, методами и так далее. В отличие от типа объекта, основной тип не может использоваться для объявления QML-объектов: например, нельзя объявить объект int{} или объект size{}.

Основные типы могут использоваться для ссылки на:

  • Одно значение (например, int ссылается на одно число, var может ссылаться на один список элементов)
  • Значение, содержащее простой набор пар свойство-значение (например, size ссылается на значение с атрибутами width и height)

Поддерживаемые основные типы

Некоторые основные типы поддерживаются движком по умолчанию и не требуют инструкции импорта, в то время как другие требуют от клиента импортировать модуль, который их предоставляет. Все основные типы, перечисленные ниже, могут использоваться в качестве property типа в документе QML, за исключением следующих случаев:

  • list должен использоваться в сочетании с типом QML-объекта
  • enumeration не может использоваться напрямую, так как перечисление должно быть определено зарегистрированным типом QML-объекта

Основные типы, предоставляемые языком QML

Основные типы, поддерживаемые в языке QML по умолчанию, перечислены ниже:

bool

Двоичное значение истинности/ложности

double

Число с десятичной точкой, хранящееся с двойной точностью

enumeration

Именованное значение перечисления

int

Целое число, например 0, 10 или -20

list

Список QML-объектов

real

Число с десятичной точкой

string

Строка произвольного текста

url

Указатель ресурса

var

Общий тип свойства

Основные типы, предоставляемые модулями QML

Модули QML могут расширить язык QML с помощью дополнительных основных типов. Например, основные типы, предоставляемые модулем QtQuick, перечислены ниже:

date

Значение даты

point

Значение с атрибутами x и y

rect

Значение с атрибутами x, y, width и height

size

Значение с атрибутами width и height

color

Значение цвета ARGB. Тип цвета относится к значению цвета ARGB. Его можно указать несколькими способами:

font

Значение шрифта со свойствами QFont. Тип шрифта относится к значению шрифта со свойствами QFont

matrix4x4

Тип matrix4x4 представляет собой матрицу 4x4

quaternion

Тип quaternion имеет атрибуты scalar, x, y и z

vector2d

Тип vector2d имеет атрибуты x и y

vector3d

Значение с атрибутами x, y и z

vector4d

Тип vector4d имеет атрибуты x, y, z и w

Глобальный объект Qt предоставляет полезные функции для работы со значениями основных типов.

В настоящее время только модули QML, предоставляемые Qt, могут предоставлять свои собственные основные типы, однако это может измениться в будущих релизах Qt QML. Для использования типов, предоставляемых определенным QML-модулем, клиенты должны импортировать этот модуль в свои QML-документы.

Поведение изменения свойств для основных типов

У некоторых основных типов есть свойства: например, у типа font есть свойства pixelSize, family и bold. В отличие от свойств типов объектов, свойства основных типов не предоставляют собственных сигналов изменения свойств. Возможно создать обработчик сигнала изменения свойства только для свойства основного типа:

Text {
    // invalid!
    onFont.pixelSizeChanged: doSomething()

    // also invalid!
    font {
        onPixelSizeChanged: doSomething()
    }

    // but this is ok
    onFontChanged: doSomething()
}

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

Text {
    onFontChanged: console.log("font changed")

    Text { id: otherText }

    focus: true

    // changing any of the font attributes, or reassigning the property
    // to a different font value, will invoke the onFontChanged handler
    Keys.onDigit1Pressed: font.pixelSize += 1
    Keys.onDigit2Pressed: font.b = !font.b
    Keys.onDigit3Pressed: font = otherText.font
}

В отличие от этого, свойства типов объекта генерируют свои собственные сигналы изменения свойств, и обработчик сигнала изменения свойства типа объекта вызывается только при повторной привязке свойства к другому значению объекта.

См. также Систему типов QML.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtqml-typesystem-basictypes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API