Spec-Zone.ru › Qt 5.6

Класс QQuickItem

Класс QQuickItem предоставляет самые базовые визуальные элементы в Qt Quick. Подробнее...

Заголовок: #include <QQuickItem>
qmake: QT += quick
Инициализируется из: Item
Наследуется от: QObject и QQmlParserStatus
Наследует:

QQuickFramebufferObject и QQuickPaintedItem

  • Список всех членов, включая наследуемые

Открытые типы

класс ItemChangeData
класс UpdatePaintNodeData
перечисление Флаг { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops }
флаги Флаги
перечисление Изменение элемента { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ..., ItemDevicePixelRatioHasChanged }
перечисление Исходная точка преобразования { TopLeft, Top, TopRight, Left, ..., BottomRight }

Свойства

  • activeFocus : const bool
  • activeFocusOnTab : bool
  • антиалиасинг : bool
  • смещение базовой линии : qreal
  • прямоугольник дочерних элементов : const QRectF
  • обрезка : bool
  • активировано : bool
  • фокус : bool
  • высота : qreal
  • неявная высота : qreal
  • неявная ширина : qreal
  • прозрачность : qreal
  • родитель : QQuickItem *
  • вращение : qreal
  • масштаб : qreal
  • плавно : bool
  • состояние : QString
  • начальная точка преобразования : TransformOrigin
  • видимость : bool
  • ширина : qreal
  • x : qreal
  • y : qreal
  • z : qreal
  • 1 свойство унаследовано от QObject

Открытые функции

QQuickItem(QQuickItem *parent = Q_NULLPTR)
virtual ~QQuickItem()
bool acceptHoverEvents() const
Qt::MouseButtons acceptedMouseButtons() const
bool activeFocusOnTab() const
bool antialiasing() const
qreal baselineOffset() const
QQuickItem * childAt(qreal x, qreal y) const
QList<QQuickItem *> childItems() const
QRectF childrenRect()
bool clip() const
virtual bool contains(const QPointF &point) const
QCursor cursor() const
bool filtersChildMouseEvents() const
Flags flags() const
void forceActiveFocus()
void forceActiveFocus(Qt::FocusReason reason)
void grabMouse()
QSharedPointer<QQuickItemGrabResult> grabToImage(const QSize &targetSize = QSize())
void grabTouchPoints(const QVector<int> &ids)
bool hasActiveFocus() const
bool hasFocus() const
qreal height() const
qreal implicitHeight() const
qreal implicitWidth() const
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
bool isEnabled() const
bool isFocusScope() const
virtual bool isTextureProvider() const
bool isVisible() const
bool keepMouseGrab() const
bool keepTouchGrab() const
QPointF mapFromItem(const QQuickItem *item, const QPointF &point) const
QPointF mapFromScene(const QPointF &point) const
QRectF mapRectFromItem(const QQuickItem *item, const QRectF &rect) const
QRectF mapRectFromScene(const QRectF &rect) const
QRectF mapRectToItem(const QQuickItem *item, const QRectF &rect) const
QRectF mapRectToScene(const QRectF &rect) const
QPointF mapToItem(const QQuickItem *item, const QPointF &point) const
QPointF mapToScene(const QPointF &point) const
QQuickItem * nextItemInFocusChain(bool forward = true)
qreal opacity() const
QQuickItem * parentItem() const
void polish()
void resetAntialiasing()
void resetHeight()
void resetWidth()
qreal rotation() const
qreal scale() const
QQuickItem * scopedFocusItem() const
void setAcceptHoverEvents(bool enabled)
void setAcceptedMouseButtons(Qt::MouseButtons buttons)
void setActiveFocusOnTab(bool)
void setAntialiasing(bool)
void setBaselineOffset(qreal)
void setClip(bool)
void setCursor(const QCursor &cursor)
void setEnabled(bool)
void setFiltersChildMouseEvents(bool filter)
void setFlag(Flag flag, bool enabled = true)
void setFlags(Flags flags)
void setFocus(bool)
END_OF_DOCUMENT_MARKER
void setFocus(bool focus, Qt::FocusReason reason)
void setHeight(qreal)
void setImplicitHeight(qreal)
void setImplicitWidth(qreal)
void setKeepMouseGrab(bool keep)
void setKeepTouchGrab(bool keep)
void setOpacity(qreal)
void setParentItem(QQuickItem *parent)
void setRotation(qreal)
void setScale(qreal)
void setSmooth(bool)
void setState(const QString &)
void setTransformOrigin(TransformOrigin)
void setVisible(bool)
void setWidth(qreal)
void setX(qreal)
void setY(qreal)
void setZ(qreal)
bool smooth() const
void stackAfter(const QQuickItem *sibling)
void stackBefore(const QQuickItem *sibling)
QString state() const
virtual QSGTextureProvider * textureProvider() const
TransformOrigin transformOrigin() const
void ungrabMouse()
void ungrabTouchPoints()
void unsetCursor()
qreal width() const
QQuickWindow * window() const
qreal x() const
qreal y() const
qreal z() const
  • 31 публичные функции, унаследованные от QObject
  • 2 публичные функции, унаследованные от QQmlParserStatus

Публичные слоты

void update()
  • 1 публичный слот, унаследованный от QObject

Сигналы

void windowChanged(QQuickWindow *window)
  • 2 сигнала, унаследованные от QObject

Защищенные функции

виртуальный bool childMouseEventFilter(QQuickItem *item, QEvent *event)
виртуальный void dragEnterEvent(QDragEnterEvent *event)
виртуальный void dragLeaveEvent(QDragLeaveEvent *event)
виртуальный void dragMoveEvent(QDragMoveEvent *event)
виртуальный void dropEvent(QDropEvent *event)
виртуальный void focusInEvent(QFocusEvent *event)
виртуальный void focusOutEvent(QFocusEvent *event)
виртуальный void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
bool heightValid() const
виртуальный void hoverEnterEvent(QHoverEvent *event)
виртуальный void hoverLeaveEvent(QHoverEvent *event)
виртуальный void hoverMoveEvent(QHoverEvent *event)
виртуальный void inputMethodEvent(QInputMethodEvent *event)
bool isComponentComplete() const
виртуальный void itemChange(ItemChange change, const ItemChangeData &value)
виртуальный void keyPressEvent(QKeyEvent *event)
виртуальный void keyReleaseEvent(QKeyEvent *event)
виртуальный void mouseDoubleClickEvent(QMouseEvent *event)
виртуальный void mouseMoveEvent(QMouseEvent *event)
виртуальный void mousePressEvent(QMouseEvent *event)
виртуальный void mouseReleaseEvent(QMouseEvent *event)
виртуальный void mouseUngrabEvent()
виртуальный void releaseResources()
виртуальный void touchEvent(QTouchEvent *event)
виртуальный void touchUngrabEvent()
void updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)
виртуальный QSGNode * updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData)
виртуальный void updatePolish()
виртуальный void wheelEvent(QWheelEvent *event)
bool widthValid() const

Реализованные защищенные функции

виртуальный void classBegin()
виртуальный void componentComplete()
виртуальный bool event(QEvent *ev)
  • 9 защищенных функций, унаследованных от QObject

Дополнительные унаследованные члены

  • 11 статических публичных членов, унаследованных от QObject

Подробное описание

Класс QQuickItem предоставляет наиболее базовые визуальные элементы в Qt Quick.

Все визуальные элементы в Qt Quick наследуются от QQuickItem. Хотя экземпляр QQuickItem не имеет визуального представления, он определяет все атрибуты, общие для визуальных элементов, такие как положение x и y, ширина и высота, привязка и поддержка обработки клавиш.

Вы можете создать подкласс QQuickItem, чтобы предоставить свой собственный пользовательский визуальный элемент, который наследует эти функции.

Пользовательские элементы графика сцены

Все визуальные элементы QML отрисовываются с помощью графика сцены, низкоуровневой высокопроизводительной стековой системы отрисовки, тесно связанной с OpenGL. Подклассы QQuickItem могут добавить свой собственный пользовательский контент в график сцены, установив флаг QQuickItem::ItemHasContents и переопределив функцию QQuickItem::updatePaintNode().

Предупреждение: Крайне важно, чтобы операции OpenGL и взаимодействие с графиком сцены происходили исключительно в потоке отрисовки, в основном во время вызова updatePaintNode(). Лучшее правило — использовать только классы с префиксом "QSG" внутри функции QQuickItem::updatePaintNode().

Примечание: Все классы с префиксом QSG должны использоваться только в потоке отрисовки графика сцены. Дополнительную информацию см. в разделе График сцены и отрисовка.

Обработка графических ресурсов

Предпочтительный способ обработки очистки графических ресурсов, используемых в графике сцены, — это полагаться на автоматическую очистку узлов. QSGNode, возвращаемый из QQuickItem::updatePaintNode(), автоматически удаляется в правильном потоке в нужное время. Деревья экземпляров QSGNode управляются с помощью QSGNode::OwnedByParent, который по умолчанию установлен. Таким образом, для большинства пользовательских элементов графика сцены дополнительных действий не потребуется.

Реализации, которые хранят графические ресурсы за пределами дерева узлов, такие как элемент, реализующий QQuickItem::textureProvider(), должны позаботиться об их правильной очистке в зависимости от того, как элемент используется в QML. Ситуации, которые необходимо обработать:

  • График сцены становится недействительным; Это может произойти, например, если окно скрыто с помощью QQuickWindow::hide(). Если класс элемента реализует slot с именем invalidateSceneGraph(), этот слот будет вызван в потоке отрисовки, в то время как поток GUI заблокирован. Это эквивалентно подключению к QQuickWindow::sceneGraphInvalidated(). Контекст OpenGL окна данного элемента будет привязан при вызове этого слота. Исключением является случай, если собственный OpenGL был уничтожен за пределами контроля Qt, например, через EGL_CONTEXT_LOST.
  • Элемент удаляется из сцены; Если элемент удаляется из сцены, например, потому что его родитель был установлен в null или в другом окне, QQuickItem::releaseResources() будет вызвана в потоке GUI. QQuickWindow::scheduleRenderJob() следует использовать для планирования очистки ресурсов отрисовки.
  • Элемент удаляется; Когда выполняется деструктор элемента, он должен удалить все графические ресурсы, которые он имеет. Если ни одно из двух условий выше еще не выполнено, элемент будет частью окна, и возможно использование QQuickWindow::scheduleRenderJob() для планирования их очистки. Если реализация игнорирует вызов QQuickItem::releaseResources(), элемент во многих случаях больше не будет иметь доступа к QQuickWindow и, следовательно, не будет иметь возможности планировать очистку.
END_OF_DOCUMENT_MARKER

При планировании очистки графических ресурсов с помощью QQuickWindow::scheduleRenderJob(), следует использовать либо QQuickWindow::BeforeSynchronizingStage, либо QQuickWindow::AfterSynchronizingStage. Стадия синхронизации — это момент, когда граф сцены изменяется в результате изменений в дереве QML. Если очистка запланирована в любое другое время, это может привести к тому, что другие части графа сцены будут ссылаться на удалённые объекты, так как эти части не были обновлены.

Примечание: Использование QObject::deleteLater() для очистки графических ресурсов не рекомендуется, так как это выполняется в произвольное время, и неизвестно, будет ли привязан контекст OpenGL при удалении.

Пользовательские элементы QPainter

Класс QQuickItem предоставляет подкласс QQuickPaintedItem, который позволяет пользователям отрисовывать контент с помощью QPainter.

Предупреждение: Использование QQuickPaintedItem использует косвенную 2D-поверхность для отрисовки своего содержимого, либо с помощью программной растризации, либо с помощью объекта фреймбуфера OpenGL (FBO), поэтому отрисовка является двуэтапной операцией. Сначала растрируйте поверхность, затем отрисуйте поверхность. Использование API графа сцены напрямую всегда значительно быстрее.

Анимации поведения

Если ваш элемент использует тип Behavior для определения анимаций изменений свойств, всегда следует использовать QObject::setProperty(), QQmlProperty() или QMetaProperty::write() при необходимости изменения этих свойств из C++. Это гарантирует, что движок QML знает об изменении свойства. В противном случае движок не сможет выполнить запрошенную анимацию. Обратите внимание, что эти функции влекут за собой небольшую потерю производительности. Более подробная информация приведена в разделе Доступ к членам типа объекта QML из C++.

См. также QQuickWindow и QQuickPaintedItem.

Документация по типам членов

enum QQuickItem::Flagflags QQuickItem::Flags

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

Постоянная Значение Описание
QQuickItem::ItemClipsChildrenToShape 0x01 Указывает, что этот элемент должен визуально обрезать своих потомков, чтобы они отображались только в пределах границ этого элемента.
QQuickItem::ItemAcceptsInputMethod 0x02 Указывает, что элемент поддерживает методы ввода текста.
QQuickItem::ItemIsFocusScope 0x04 Указывает, что элемент является областью фокуса. Дополнительную информацию см. в разделе Фокус клавиатуры в Qt Quick.
QQuickItem::ItemHasContents 0x08 Указывает, что элемент имеет визуальное содержимое и должен отображаться графическим деревом сцены.
QQuickItem::ItemAcceptsDrops 0x10 Указывает, что элемент принимает события перетаскивания.

Тип Flags — это typedef для QFlags<Flag>. Он хранит логическое ИЛИ сочетание значений Flag.

См. также setFlag(), setFlags() и flags().

enum QQuickItem::ItemChange

Используется совместно с QQuickItem::itemChange() для уведомления элемента о некоторых типах изменений.

Постоянная Значение Описание
QQuickItem::ItemChildAddedChange 0 Добавлен дочерний элемент. ItemChangeData::item содержит добавленный дочерний элемент.
QQuickItem::ItemChildRemovedChange 1 Удален дочерний элемент. ItemChangeData::item содержит удалённый дочерний элемент.
QQuickItem::ItemSceneChange 2 Элемент был добавлен или удалён из сцены. Окно QQuickWindow, отображающее сцену, указано с помощью ItemChangeData::window. Параметр window имеет значение null, когда элемент удалён из сцены.
QQuickItem::ItemVisibleHasChanged 3 Изменилась видимость элемента. ItemChangeData::boolValue содержит новую видимость.
QQuickItem::ItemParentHasChanged 4 Изменился родитель элемента. ItemChangeData::item содержит нового родителя.
QQuickItem::ItemOpacityHasChanged 5 Изменилась непрозрачность элемента. ItemChangeData::realValue содержит новую непрозрачность.
QQuickItem::ItemActiveFocusHasChanged 6 Изменился фокус элемента. ItemChangeData::boolValue содержит информацию о наличии фокуса у элемента.
QQuickItem::ItemRotationHasChanged 7 Изменился угол поворота элемента. ItemChangeData::realValue содержит новый угол поворота.
QQuickItem::ItemDevicePixelRatioHasChanged 9 Изменилось значение коэффициента пикселей устройства экрана, на котором находится элемент. ItemChangedData::realValue содержит новое значение коэффициента пикселей устройства.

enum QQuickItem::TransformOrigin

Управляет точкой, относительно которой применяются простые преобразования, такие как масштабирование.

Постоянная Значение Описание
QQuickItem::TopLeft 0 Левый верхний угол элемента.
QQuickItem::Top 1 Центр верхней части элемента.
QQuickItem::TopRight 2 Правый верхний угол элемента.
QQuickItem::Left 3 Левая точка вертикального центра.
QQuickItem::Center 4 Центр элемента.
QQuickItem::Right 5 Правая точка вертикального центра.
QQuickItem::BottomLeft 6 Левый нижний угол элемента.
QQuickItem::Bottom 7 Центр нижней части элемента.
QQuickItem::BottomRight 8 Правый нижний угол элемента.

См. также transformOrigin() и setTransformOrigin().

Документация свойств

activeFocus : const bool

Это только для чтения свойство, указывающее, имеет ли элемент активный фокус.

Если activeFocus имеет значение true, то либо этот элемент в данный момент получает ввод с клавиатуры, либо он является предком FocusScope элемента, который в данный момент получает ввод с клавиатуры.

Обычно активный фокус приобретается путем установки свойства focus на элементе и его родительских объектах FocusScope. В приведенном ниже примере объекты input и focusScope будут иметь активный фокус, а корневой прямоугольный объект — нет.

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        focus: true

        TextInput {
            id: input
            focus: true
        }
    }
}

Функции доступа:

bool hasActiveFocus() const

См. также focus и Фокус клавиатуры в Qt Quick.

activeFocusOnTab : bool

Это свойство указывает, хочет ли элемент быть в цепочке фокуса табуляции. По умолчанию это установлено в false.

Функции доступа:

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

antialiasing : bool

Указывает, включена ли антиалиасинговая обработка для элемента.

Используется визуальными элементами для определения того, нужно ли использовать антиалиасинг для элемента. В некоторых случаях элементы с антиалиасингом требуют больше памяти и, потенциально, медленнее отображаются (см. Антиалиасинг для получения более подробной информации).

По умолчанию значение false, но может быть переопределено производными элементами.

Функции доступа:

bool antialiasing() const
void setAntialiasing(bool)
void resetAntialiasing()

baselineOffset : qreal

Указывает положение базовой линии элемента в локальных координатах.

Базовая линия элемента Text — воображаемая линия, на которой расположен текст. Элементы управления, содержащие текст, обычно устанавливают свою базовую линию на базовую линию их текста.

Для элементов, не являющихся текстом, используется значение смещения базовой линии по умолчанию 0.

Функции доступа:

qreal baselineOffset() const
void setBaselineOffset(qreal)

childrenRect : const QRectF

Это свойство содержит коллективные положение и размер дочерних элементов.

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

Функции доступа:

QRectF childrenRect()

clip : bool

Это свойство содержит значение, указывающее, включена ли функция обрезки. Значение clip по умолчанию равно false.

Если функция обрезки включена, элемент обрезает собственное рисование, а также рисование своих дочерних элементов, до его граничной области. Если вы включили обрезку во время рисования элемента, помните, чтобы переустановить её, чтобы не обрезать остальную часть сцены.

Функции доступа:

bool clip() const
void setClip(bool)

enabled : bool

Это свойство содержит значение, указывающее, получает ли элемент события мыши и клавиатуры. По умолчанию это true.

Установка этого свойства напрямую влияет на значение enabled дочерних элементов. При установке в false, значения enabled всех дочерних элементов также становятся false. При установке в true, значения enabled дочерних элементов возвращаются к true, если они явно не были установлены в false.

Установка этого свойства в false автоматически приводит к установке свойства activeFocus в false, и этот элемент больше не будет получать события клавиатуры.

Функции доступа:

bool isEnabled() const
void setEnabled(bool)

См. также visible.

focus : bool

Это свойство содержит значение, указывающее, имеет ли элемент фокус в окружающем объекте FocusScope. Если значение true, этот элемент получит активный фокус, когда окружающий объект FocusScope получит активный фокус.

В следующем примере, input получит активный фокус, когда scope получит активный фокус:

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        id: scope

        TextInput {
            id: input
            focus: true
        }
    }
}

Для целей этого свойства вся сцена предполагается как фокус-области. На практике это означает, что следующий QML предоставит активный фокус input при запуске.

Rectangle {
    width: 100; height: 100

    TextInput {
          id: input
          focus: true
    }
}

Функции доступа:

bool hasFocus() const
void setFocus(bool)
void setFocus(bool focus, Qt::FocusReason reason)

См. также activeFocus и Фокус клавиатуры в Qt Quick.

height : qreal

Это свойство содержит высоту этого элемента.

Функции доступа:

qreal height() const
void setHeight(qreal)
void resetHeight()

implicitHeight : qreal

Определяет естественную высоту элемента, если не указаны width или height.

По умолчанию неявный размер большинства элементов равен 0x0, однако некоторые элементы имеют собственный неявный размер, который нельзя переопределить, например, Image и Text.

Установка неявного размера полезна для определения компонентов, у которых предпочтительный размер зависит от их содержимого, например:

// Label.qml
import QtQuick 2.0

Item {
    property alias icon: image.source
    property alias label: text.text
    implicitWidth: text.implicitWidth + image.implicitWidth
    implicitHeight: Math.max(text.implicitHeight, image.implicitHeight)
    Image { id: image }
    Text {
        id: text
        wrapMode: Text.Wrap
        anchors.left: image.right; anchors.right: parent.right
        anchors.verticalCenter: parent.verticalCenter
    }
}

Примечание: Использование implicitWidth элементов Text или TextEdit и явная установка ширины приводит к потере производительности, поскольку текст должен быть выровнен дважды.

Функции доступа:

qreal implicitHeight() const
void setImplicitHeight(qreal)

implicitWidth : qreal

Определяет естественную ширину элемента, если не указаны width или height.

По умолчанию неявный размер большинства элементов равен 0x0, однако некоторые элементы имеют собственный неявный размер, который нельзя переопределить, например, Image и Text.

Установка неявного размера полезна для определения компонентов, у которых предпочтительный размер зависит от их содержимого, например:

// Label.qml
import QtQuick 2.0

Item {
    property alias icon: image.source
    property alias label: text.text
    implicitWidth: text.implicitWidth + image.implicitWidth
    implicitHeight: Math.max(text.implicitHeight, image.implicitHeight)
    Image { id: image }
    Text {
        id: text
        wrapMode: Text.Wrap
        anchors.left: image.right; anchors.right: parent.right
        anchors.verticalCenter: parent.verticalCenter
    }
}

Примечание: Использование implicitWidth элементов Text или TextEdit и явная установка ширины приводит к потере производительности, поскольку текст должен быть выровнен дважды.

Функции доступа:

qreal implicitWidth() const
void setImplicitWidth(qreal)

opacity : qreal

Это свойство задаёт непрозрачность элемента. Непрозрачность указывается как число от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный). Значение по умолчанию — 1.0.

При установке этого свойства, заданная непрозрачность также применяется к дочерним элементам по отдельности. В некоторых случаях это может иметь нежелательный эффект. Например, на втором наборе прямоугольников ниже, красный прямоугольник задаёт непрозрачность 0.5, которая влияет на непрозрачность его синего дочернего прямоугольника, даже если у дочернего элемента не задана непрозрачность.

Значения вне диапазона от 0 до 1 будут ограничены.

Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Item {
    Rectangle {
        opacity: 0.5
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Изменение непрозрачности элемента не влияет на то, получает ли элемент события пользовательского ввода. (В отличие от этого, установка свойства visible в false блокирует события мыши, а установка свойства enabled в false блокирует события мыши и клавиатуры, а также снимает активный фокус с элемента.)

Функции доступа:

qreal opacity() const
void setOpacity(qreal)

См. также visible.

parent : QQuickItem *

Это свойство содержит визуального родителя элемента.

Примечание: Понятие визуального родителя отличается от понятия родителя QObject. Визуальный родитель элемента необязательно совпадает с его родителем в иерархии объектов. Подробнее см. Концепции - Визуальный родитель в Qt Quick.

Функции доступа:

QQuickItem * parentItem() const
void setParentItem(QQuickItem *parent)

rotation : qreal

Это свойство содержит угол поворота элемента в градусах по часовой стрелке вокруг его transformOrigin.

Значение по умолчанию — 0 градусов (то есть, без поворота).

Rectangle {
    color: "blue"
    width: 100; height: 100
    Rectangle {
        color: "red"
        x: 25; y: 25; width: 50; height: 50
        rotation: 30
    }
}

Функции доступа:

qreal rotation() const
void setRotation(qreal)

См. также Преобразование и Поворот.

scale : qreal

Это свойство содержит коэффициент масштабирования для данного элемента.

Масштаб меньше 1.0 приводит к отображению элемента в меньшем размере, а масштаб больше 1.0 отображает элемент в большем размере. Отрицательный масштаб приводит к отображению элемента с зеркальным отражением.

Значение по умолчанию — 1.0.

Масштабирование выполняется от transformOrigin.

import QtQuick 2.0

Rectangle {
    color: "blue"
    width: 100; height: 100

    Rectangle {
        color: "green"
        width: 25; height: 25
    }

    Rectangle {
        color: "red"
        x: 25; y: 25; width: 50; height: 50
        scale: 1.4
    }
}

Функции доступа:

qreal scale() const
void setScale(qreal)

См. также Преобразование и Масштабирование.

smooth : bool

Указывает, сглажен ли элемент.

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

В Qt Quick 2.0 это свойство минимально влияет на производительность.

По умолчанию это свойство установлено в true.

Функции доступа:

bool smooth() const
void setSmooth(bool)

state : QString

Это свойство содержит имя текущего состояния элемента.

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

Функции доступа:

QString state() const
void setState(const QString &)

См. также Состояния Qt Quick.

transformOrigin : TransformOrigin

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

Доступно девять точек начала преобразования, как показано на рисунке ниже. Значение по умолчанию — Item.Center.

Функции доступа:

TransformOrigin transformOrigin() const
void setTransformOrigin(TransformOrigin)

visible : bool

Это свойство задаёт видимость элемента. По умолчанию оно равно true.

Прямое изменение этого свойства влияет на значение visible дочерних элементов. При установке в false, значения visible всех дочерних элементов также становятся false. При установке в true, значения visible дочерних элементов возвращаются к true, если они явно не были установлены в false.

(Из-за этого поведения, использование свойства visible может не иметь ожидаемого эффекта, если привязку свойств следует использовать только при явных изменениях свойств. В таких случаях может быть лучше использовать свойство opacity.)

Если это свойство установлено в false, элемент больше не будет получать события мыши, но будет продолжать получать события клавиатуры и сохранит фокус клавиатуры, если он был задан. (В отличие от этого, установка свойства enabled в false блокирует как события мыши, так и клавиатуры, а также снимает фокус с элемента.)

Примечание: Значение этого свойства изменяется только при изменении этого свойства или свойства родительского элемента visible. Оно не изменяется, например, если этот элемент выходит за пределы экрана или если свойство opacity изменяется на 0.

Функции доступа:

bool isVisible() const
void setVisible(bool)

См. также opacity и enabled.

width : qreal

Это свойство содержит ширину этого элемента.

Функции доступа:

qreal width() const
void setWidth(qreal)
void resetWidth()

x : qreal

Определяет положение элемента по оси x относительно его родителя.

Функции доступа:

qreal x() const
void setX(qreal)

y : qreal

Определяет положение элемента по оси y относительно его родителя.

Функции доступа:

qreal y() const
void setY(qreal)
END_OF_DOCUMENT_MARKER

z : qreal

Устанавливает порядок следования элементов-братьев. По умолчанию порядок следования равен 0.

Элементы с большим значением порядка следования выводятся поверх элементов с меньшим значением порядка следования. Элементы с одинаковым значением порядка следования выводятся снизу вверх в порядке их появления. Элементы с отрицательным значением порядка следования выводятся под содержимым родительского элемента.

Следующий пример демонстрирует различные эффекты порядка следования.

Те же z - потомки, появившиеся позже, сверху предшествующих:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Более высокий z сверху:
Item {
    Rectangle {
        z: 1
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Те же z - дети сверху родителей:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Меньший z снизу:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            z: -1
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Функции доступа:

qreal z() const
void setZ(qreal)

Документация по членам-функциям

QQuickItem::QQuickItem(QQuickItem *parent = Q_NULLPTR)

Создает QQuickItem с заданным parent.

[virtual] QQuickItem::~QQuickItem()

Уничтожает QQuickItem.

bool QQuickItem::acceptHoverEvents() const

Возвращает, принимаются ли события наведения на элемент этим элементом.

Значение по умолчанию — false.

Если значение false, элемент не будет получать события наведения с помощью функций hoverEnterEvent(), hoverMoveEvent() и hoverLeaveEvent().

См. также setAcceptHoverEvents().

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

Возвращает обработанные этим элементом кнопки мыши.

Значение по умолчанию — Qt::NoButton; то есть ни одна кнопка мыши не обрабатывается.

Если элемент не обрабатывает кнопку мыши для определённого события мыши, то событие мыши не будет доставлено элементу и вместо этого будет доставлено следующему элементу в иерархии элементов.

См. также setAcceptedMouseButtons().

QQuickItem *QQuickItem::childAt(qreal x, qreal y) const

Возвращает первый видимый дочерний элемент, найденный в точке (x, y) в системе координат этого элемента.

Возвращает 0, если такого элемента нет.

QList<QQuickItem *> QQuickItem::childItems() const

Возвращает дочерние элементы этого элемента.

[virtual protected] bool QQuickItem::childMouseEventFilter(QQuickItem *item, QEvent *event)

Переопределите этот метод для фильтрации событий мыши, получаемых дочерними элементами этого элемента.

Этот метод будет вызываться только в том случае, если filtersChildMouseEvents() имеет значение true.

Возвращает true, если указанное событие event не должно передаваться указанному дочернему элементу item, и false в противном случае.

См. также setFiltersChildMouseEvents().

[virtual protected] void QQuickItem::classBegin()

Переопределено из QQmlParserStatus::classBegin().

Производные классы должны вызывать базовый метод перед добавлением собственного действия для выполнения в classBegin.

[virtual protected] void QQuickItem::componentComplete()

Переопределено из QQmlParserStatus::componentComplete().

Производные классы должны вызывать базовый метод перед добавлением собственных действий для выполнения в componentComplete.

[virtual] bool QQuickItem::contains(const QPointF &point) const

Возвращает true, если этот элемент содержит point, который находится в локальных координатах; в противном случае возвращает false.

Этот метод может быть переопределён, чтобы обработать столкновения точек с элементами с пользовательскими формами. По умолчанию проверяется, находится ли точка внутри прямоугольника ограничивающего элемента.

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

QCursor QQuickItem::cursor() const

Возвращает форму курсора для этого элемента.

Курсор мыши примет эту форму, когда он будет над этим элементом, если не установлен курсор-перекрытие. Список предопределённых объектов курсора см. в списке предопределённых объектов курсора.

Если форма курсора не установлена, возвращается курсор с формой Qt::ArrowCursor, однако может отображаться другая форма курсора, если перекрывающий элемент имеет допустимую форму курсора.

См. также setCursor() и unsetCursor().

[virtual protected] void QQuickItem::dragEnterEvent(QDragEnterEvent *event)

Этот обработчик событий можно переопределить в подклассе для получения событий drag-enter для элемента. Информация о событии предоставляется параметром event.

События перетаскивания и падения предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.

См. также Перетаскивание и Перетаскивание и помещение.

[virtual protected] void QQuickItem::dragLeaveEvent(QDragLeaveEvent *event)

Этот обработчик событий можно переопределить в подклассе для получения событий drag-leave для элемента. Информация о событии предоставляется параметром event.

События перетаскивания и падения предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.

См. также Перетаскивание и Перетаскивание и помещение.

[virtual protected] void QQuickItem::dragMoveEvent(QDragMoveEvent *event)

Этот обработчик событий можно переопределить в подклассе для получения событий drag-move для элемента. Информация о событии предоставляется параметром event.

События перетаскивания и падения предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.

См. также Перетаскивание и Перетаскивание и помещение.

[virtual protected] void QQuickItem::dropEvent(QDropEvent *event)

Этот обработчик событий можно переопределить в подклассе для получения событий drop для элемента. Информация о событии предоставляется параметром event.

События перетаскивания и падения предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.

См. также Перетаскивание и Перетаскивание и помещение.

[virtual protected] bool QQuickItem::event(QEvent *ev)

Переопределено из QObject::event().

bool QQuickItem::filtersChildMouseEvents() const

Возвращает, должны ли события мыши дочерних элементов этого элемента фильтроваться через этот элемент.

См. также setFiltersChildMouseEvents() и childMouseEventFilter().

Flags QQuickItem::flags() const

Возвращает флаги элемента для этого элемента.

См. также setFlags() и setFlag().

[virtual protected] void QQuickItem::focusInEvent(QFocusEvent *event)

Этот обработчик событий можно переопределить в подклассе для получения событий focus-in для элемента. Информация о событии предоставляется параметром event.

[virtual protected] void QQuickItem::focusOutEvent(QFocusEvent *event)

Этот обработчик событий можно переопределить в подклассе для получения событий focus-out для элемента. Информация о событии предоставляется параметром event.

void QQuickItem::forceActiveFocus()

Принудительно устанавливает активный фокус на элемент.

Этот метод устанавливает фокус на элементе и гарантирует, что все предковые объекты FocusScope в иерархии объектов также получают focus.

Причина изменения фокуса будет Qt::OtherFocusReason. Используйте перегруженный метод для указания причины изменения фокуса, чтобы обеспечить лучшее управление изменением фокуса.

См. также activeFocus.

void QQuickItem::forceActiveFocus(Qt::FocusReason reason)

Это перегруженный метод.

Принудительно устанавливает активный фокус на элемент с указанной причиной reason.

Этот метод устанавливает фокус на элемент и гарантирует, что все родительские объекты FocusScope в иерархии объектов также получат focus.

Эта функция была введена в Qt 5.1.

См. также activeFocus и Qt::FocusReason.

[virtual protected] void QQuickItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)

Этот метод вызывается для обработки изменений геометрии данного элемента с oldGeometry на newGeometry. Если геометрии одинаковы, ничего не происходит.

Подклассы должны вызывать базовый метод в своей реализации.

void QQuickItem::grabMouse()

Захватывает входные данные мыши.

Этот элемент будет получать все события мыши, пока не будет вызван ungrabMouse().

Предупреждение: Эта функция должна использоваться с осторожностью.

QSharedPointer<QQuickItemGrabResult> QQuickItem::grabToImage(const QSize &targetSize = QSize())

Захватывает элемент в виде изображения в памяти.

Захват происходит асинхронно, и сигнал QQuickItemGrabResult::ready() излучается, когда захват завершён.

Используйте targetSize для указания размера целевого изображения. По умолчанию результат будет иметь тот же размер, что и элемент.

Если захват не может быть инициирован, функция возвращает null.

Примечание: Эта функция отобразит элемент на офскрин-поверхность и скопирует эту поверхность из памяти графического процессора в память центрального процессора, что может быть достаточно дорогостоящим. Для «живого» предварительного просмотра используйте слои или ShaderEffectSource.

См. также QQuickWindow::grabWindow().

void QQuickItem::grabTouchPoints(const QVector<int> &ids)

Захватывает точки касания, указанные в ids.

Эти точки касания будут принадлежать элементу до тех пор, пока они не будут освобождены. В качестве альтернативы, захват может быть украден элементом фильтрации, например, Flickable. Используйте setKeepTouchGrab(), чтобы предотвратить кражу захвата.

См. также ungrabTouchPoints() и setKeepTouchGrab().

[protected] bool QQuickItem::heightValid() const

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

[virtual protected] void QQuickItem::hoverEnterEvent(QHoverEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий входа в зону наведения на элемент. Информация о событии предоставляется параметром event.

События наведения предоставляются только если acceptHoverEvents() равно true.

[virtual protected] void QQuickItem::hoverLeaveEvent(QHoverEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий выхода из зоны наведения на элемент. Информация о событии предоставляется параметром event.

События наведения предоставляются только если acceptHoverEvents() равно true.

[virtual protected] void QQuickItem::hoverMoveEvent(QHoverEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий перемещения в зоне наведения на элемент. Информация о событии предоставляется параметром event.

События наведения предоставляются только если acceptHoverEvents() равно true.

qreal QQuickItem::implicitWidth() const

Возвращает ширину элемента, предполагаемую другими свойствами, определяющими содержимое.

Примечание: Метод-получатель свойства implicitWidth.

См. также setImplicitWidth().

[virtual protected] void QQuickItem::inputMethodEvent(QInputMethodEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий ввода для элемента. Информация о событии предоставляется параметром event.

[virtual] QVariant QQuickItem::inputMethodQuery(Qt::InputMethodQuery query) const

Этот метод важен только для элементов ввода.

Если этот элемент является элементом ввода, этот метод следует переопределить для возвращения соответствующих флагов метода ввода для заданного query.

См. также QWidget::inputMethodQuery().

[protected] bool QQuickItem::isComponentComplete() const

Возвращает true, если построение компонента QML завершено; в противном случае возвращает false.

Часто желательно отложить некоторые операции до завершения компонента.

См. также componentComplete().

bool QQuickItem::isFocusScope() const

Возвращает true, если этот элемент является областью фокуса, и false в противном случае.

[virtual] bool QQuickItem::isTextureProvider() const

Возвращает true, если этот элемент является поставщиком текстур. По умолчанию возвращает false.

Этот метод может быть вызван из любого потока.

[virtual protected] void QQuickItem::itemChange(ItemChange change, const ItemChangeData &value)

Вызывается при возникновении события change для данного элемента.

value содержит дополнительную информацию, относящуюся к изменению, если применимо.

Если вы переопределяете этот метод в подклассе, убедитесь, что вызываете

QQuickItem::itemChange(change, value);

обычно в конце вашей реализации, чтобы гарантировать, что будет излучен сигнал windowChanged().

bool QQuickItem::keepMouseGrab() const

Возвращает значение, указывающее, должен ли ввод мыши оставаться исключительно с этим элементом.

См. также setKeepMouseGrab().

bool QQuickItem::keepTouchGrab() const

Возвращает значение, указывающее, должны ли точки касания, захваченные этим элементом, оставаться исключительно с этим элементом.

См. также setKeepTouchGrab() и keepMouseGrab().

[virtual protected] void QQuickItem::keyPressEvent(QKeyEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий нажатия клавиш для элемента. Информация о событии предоставляется параметром event.

[virtual protected] void QQuickItem::keyReleaseEvent(QKeyEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий отпускания клавиш для элемента. Информация о событии предоставляется параметром event.

QPointF QQuickItem::mapFromItem(const QQuickItem *item, const QPointF &point) const

Преобразует заданную точку point в системе координат item в эквивалентную точку в системе координат этого элемента и возвращает преобразованную координату.

Если item равен 0, это преобразует point из системы координат сцены.

См. также Концепции - Визуальные координаты в Qt Quick.

QPointF QQuickItem::mapFromScene(const QPointF &point) const

Преобразует заданную точку point в системе координат сцены в эквивалентную точку в системе координат этого элемента и возвращает преобразованную координату.

См. также Концепции - Визуальные координаты в Qt Quick.

QRectF QQuickItem::mapRectFromItem(const QQuickItem *item, const QRectF &rect) const

Преобразует заданный прямоугольник rect в системе координат item в эквивалентную прямоугольную область в системе координат этого элемента и возвращает преобразованное значение прямоугольника.

Если item равен 0, это преобразует rect из системы координат сцены.

См. также Концепции - Визуальные координаты в Qt Quick.

QRectF QQuickItem::mapRectFromScene(const QRectF &rect) const

Преобразует заданный прямоугольник rect в системе координат сцены в эквивалентную прямоугольную область в системе координат этого элемента и возвращает преобразованный прямоугольник.

См. также Концепции - Визуальные координаты в Qt Quick.

QRectF QQuickItem::mapRectToItem(const QQuickItem *item, const QRectF &rect) const

Преобразует заданный прямоугольник rect в системе координат этого элемента в эквивалентную прямоугольную область в системе координат элемента item и возвращает преобразованный прямоугольник.

Если item равен 0, это преобразует rect в систему координат сцены.

См. также Концепции - Визуальные координаты в Qt Quick.

QRectF QQuickItem::mapRectToScene(const QRectF &rect) const

Преобразует заданный прямоугольник rect в системе координат этого элемента в эквивалентную прямоугольную область в системе координат сцены и возвращает преобразованный прямоугольник.

См. также Концепции - Визуальные координаты в Qt Quick.

QPointF QQuickItem::mapToItem(const QQuickItem *item, const QPointF &point) const

Преобразует заданную точку point в системе координат этого элемента в эквивалентную точку в системе координат элемента item и возвращает преобразованную координату.

Если item равен 0, это преобразует point в систему координат сцены.

См. также Концепции - Визуальные координаты в Qt Quick.

QPointF QQuickItem::mapToScene(const QPointF &point) const

Преобразует заданную точку point в системе координат этого элемента в эквивалентную точку в системе координат сцены и возвращает преобразованную координату.

См. также Концепции - Визуальные координаты в Qt Quick.

[virtual protected] void QQuickItem::mouseDoubleClickEvent(QMouseEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий двойного щелчка мышью для элемента. Информация об событии предоставляется параметром event.

[virtual protected] void QQuickItem::mouseMoveEvent(QMouseEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий перемещения мыши для элемента. Информация об событии предоставляется параметром event.

[virtual protected] void QQuickItem::mousePressEvent(QMouseEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий нажатия мыши для элемента. Информация об событии предоставляется параметром event.

[virtual protected] void QQuickItem::mouseReleaseEvent(QMouseEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий отпускания мыши для элемента. Информация об событии предоставляется параметром event.

[virtual protected] void QQuickItem::mouseUngrabEvent()

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

См. также ungrabMouse().

QQuickItem *QQuickItem::nextItemInFocusChain(bool forward = true)

Возвращает элемент в цепочке фокуса, который находится рядом с этим элементом. Если forward равно true, или не указано, это следующий элемент в прямом направлении. Если forward равно false, это следующий элемент в обратном направлении.

void QQuickItem::polish()

Планирует событие полировки для этого элемента.

Когда графическое дерево обработает запрос, оно вызовет updatePolish() для этого элемента.

[virtual protected] void QQuickItem::releaseResources()

Эта функция вызывается, когда элемент должен освободить графические ресурсы, которые не управляются узлами, возвращаемыми из QQuickItem::updatePaintNode().

Это происходит, когда элемент собирается быть удалён из окна, для которого он ранее рендерился. Элемент гарантированно имеет window при вызове функции.

Функция вызывается в потоке GUI, и состояние потока рендеринга неизвестно. Объекты не должны удаляться напрямую, а вместо этого планироваться для очистки с помощью QQuickWindow::scheduleRenderJob().

См. также Обработка графических ресурсов.

QQuickItem *QQuickItem::scopedFocusItem() const

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

Возвращает 0, если этот элемент не является областью фокуса.

void QQuickItem::setAcceptHoverEvents(bool enabled)

Если enabled равно true, это задаёт элементу прием событий наведения; в противном случае события наведения не принимаются этим элементом.

См. также acceptHoverEvents().

void QQuickItem::setAcceptedMouseButtons(Qt::MouseButtons buttons)

Устанавливает кнопки мыши, принимаемые этим элементом, в buttons.

См. также acceptedMouseButtons().

void QQuickItem::setCursor(const QCursor &cursor)

Устанавливает форму cursor для этого элемента.

См. также cursor() и unsetCursor().

void QQuickItem::setFiltersChildMouseEvents(bool filter)

Устанавливает, должны ли события мыши дочерних элементов этого элемента фильтроваться через этот элемент.

Если filter равно true, childMouseEventFilter() будет вызываться при возникновении события мыши для дочернего элемента.

См. также filtersChildMouseEvents().

void QQuickItem::setFlag(Flag flag, bool enabled = true)

Включает указанный флаг flag для этого элемента, если enabled равно true; если enabled равно false, флаг отключается.

Эти флаги предоставляют различные подсказки для элемента; например, флаг ItemClipsChildrenToShape указывает, что все дочерние элементы этого элемента должны быть обрезаны, чтобы поместиться в область элемента.

void QQuickItem::setFlags(Flags flags)

Включает указанные флаги flags для этого элемента.

См. также flags() и setFlag().

void QQuickItem::setKeepMouseGrab(bool keep)

Устанавливает, должно ли взаимодействие с мышью оставаться исключительно с этим элементом.

Это полезно для элементов, которые хотят захватывать и удерживать взаимодействие с мышью после выполнения определённого жеста. Например, элемент, заинтересованный в горизонтальном перемещении мышью, может установить keepMouseGrab в true, когда будет превышен определённый порог. После установки keepMouseGrab в true, фильтрующие элементы не будут реагировать на события мыши.

Если keep равно false, фильтрующий элемент может перехватить захват. Например, Flickable может попытаться перехватить захват мыши, если обнаружит, что пользователь начал перемещать область просмотра.

См. также keepMouseGrab().

void QQuickItem::setKeepTouchGrab(bool keep)

Устанавливает, должны ли касания, захваченные этим элементом, оставаться исключительно с этим элементом.

Это полезно для элементов, которые хотят захватывать и удерживать конкретные точки касания после выполнения определённого жеста. Например, элемент, заинтересованный в горизонтальном перемещении точек касания, может установить setKeepTouchGrab в true, когда будет превышен определённый порог. После установки setKeepTouchGrab в true, фильтрующие элементы не будут реагировать на соответствующие точки касания.

Если keep равно false, фильтрующий элемент может перехватить захват. Например, Flickable может попытаться перехватить захват точки касания, если обнаружит, что пользователь начал перемещать область просмотра.

См. также keepTouchGrab() и setKeepMouseGrab().

void QQuickItem::stackAfter(const QQuickItem *sibling)

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

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

Если у обоих элементов свойство activeFocusOnTab установлено в true, это также вызовет изменение порядка фокуса таба, при этом брат получит фокус перед текущим элементом.

Указанный элемент-брат должен быть братом текущего элемента; то есть, они должны иметь того же непосредственного родителя.

См. также Концепции — Визуальный родитель в Qt Quick.

void QQuickItem::stackBefore(const QQuickItem *sibling)

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

Предполагая, что значения z обоих элементов одинаковы, это приведет к тому, что брат будет отображаться выше текущего элемента.

Если у обоих элементов свойство activeFocusOnTab установлено в true, это также вызовет изменение порядка фокуса таба, при этом брат получит фокус после текущего элемента.

Указанный элемент-брат должен быть братом текущего элемента; то есть, они должны иметь того же непосредственного родителя.

См. также Концепции — Визуальный родитель в Qt Quick.

[virtual] QSGTextureProvider *QQuickItem::textureProvider() const

Возвращает поставщик текстур для элемента. По умолчанию возвращает 0.

Эта функция может вызываться только в потоке отрисовки.

[virtual protected] void QQuickItem::touchEvent(QTouchEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий касания для элемента. Информация об событии предоставляется параметром event.

[virtual protected] void QQuickItem::touchUngrabEvent()

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

void QQuickItem::ungrabMouse()

Освобождает захват мыши после вызова grabMouse().

void QQuickItem::ungrabTouchPoints()

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

См. также grabTouchPoints().

void QQuickItem::unsetCursor()

Очищает форму курсора для этого элемента.

См. также cursor() и setCursor().

[slot] void QQuickItem::update()

Планирует вызов updatePaintNode() для этого элемента.

Вызов QQuickItem::updatePaintNode() всегда происходит, если элемент отображается в QQuickWindow.

Вызывать QQuickItem::update() разрешено только для элементов, у которых установлено флаг QQuickItem::ItemHasContents.

[protected] void QQuickItem::updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)

Уведомляет метод ввода о значениях обновлённых запросов при необходимости. queries указывает изменённые атрибуты.

[virtual protected] QSGNode *QQuickItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData)

Вызывается в потоке отрисовки, когда пришло время синхронизировать состояние элемента с деревом сцены.

Функция вызывается в результате QQuickItem::update(), если пользователь установил флаг QQuickItem::ItemHasContents для элемента.

Функция должна возвращать корень поддерева графика сцены для этого элемента. Большинство реализаций вернут один QSGGeometryNode, содержащий визуальное представление этого элемента. oldNode — узел, который был возвращён в последний раз, когда функция была вызвана. updatePaintNodeData предоставляет указатель на связанный с этим QQuickItem QSGTransformNode.

QSGNode *MyItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
{
    QSGSimpleRectNode *n = static_cast<QSGSimpleRectNode *>(node);
    if (!n) {
        n = new QSGSimpleRectNode();
        n->setColor(Qt::red);
    }
    n->setRect(boundingRect());
    return n;
}

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

Если ни один вызов QQuickItem::updatePaintNode() не привёл к фактическим изменениям в графике сцены, таким как QSGNode::markDirty() или добавление и удаление узлов, то реализация может принять решение не перерисовывать сцену, поскольку визуальный результат идентичен.

Предупреждение: Крайне важно, чтобы операции OpenGL и взаимодействие с графиком сцены происходили исключительно в потоке отрисовки, в основном во время вызова QQuickItem::updatePaintNode(). Лучшее правило — использовать только классы с префиксом «QSG» внутри функции QQuickItem::updatePaintNode().

Предупреждение: Эта функция вызывается в потоке отрисовки. Это означает, что любые QObjects или локальное хранилище, созданные в этой функции, будут иметь привязанность к потоку отрисовки, поэтому будьте осторожны, когда делаете что-либо помимо отрисовки в этой функции. Аналогично для сигналов, они будут испускаться в потоке отрисовки и поэтому часто будут доставлены через очереди соединений.

Примечание: Все классы с префиксом QSG должны использоваться только в потоке отрисовки графика сцены. См. График сцены и отрисовка для получения дополнительной информации.

См. также QSGMaterial, QSGSimpleMaterial, QSGGeometryNode, QSGGeometry, QSGFlatColorMaterial, QSGTextureMaterial, QSGNode::markDirty() и Обработка графических ресурсов.

[virtual protected] void QQuickItem::updatePolish()

Эта функция должна выполнять все необходимые макеты для этого элемента.

Когда вызывается polish(), график сцены планирует событие полировки для этого элемента. Когда график сцены готов отобразить этот элемент, он вызывает updatePolish(), чтобы выполнить макет элемента, прежде чем отрисовать следующий кадр.

[virtual protected] void QQuickItem::wheelEvent(QWheelEvent *event)

Этот обработчик событий может быть переопределён в подклассе для получения событий прокрутки для элемента. Информация об событии предоставляется параметром event.

[protected] bool QQuickItem::widthValid() const

Возвращает, было ли свойство ширины явно установлено.

QQuickWindow *QQuickItem::window() const

Возвращает окно, в котором отображается этот элемент.

Элемент не имеет окна, пока ему не будет назначена сцена. Сигнал windowChanged() предоставляет уведомление как при вхождении элемента в сцену, так и при его удалении из сцены.

[signal] void QQuickItem::windowChanged(QQuickWindow *window)

Этот сигнал испускается, когда окно элемента меняется.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qquickitem.html

Spec-Zone.ru

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