Spec-Zone.ru › Qt 5.14

Класс QQuickItem

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

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

QQuickFramebufferObject и QQuickPaintedItem

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

Типы

ДанныеИзмененияЭлемента
перечисление Флаг { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops }
флаги Флаги
перечисление ИзменениеЭлемента { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ItemParentHasChanged, …, ItemEnabledHasChanged }
перечисление ИсточникПреобразования { TopLeft, Top, TopRight, Left, Center, …, 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

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

QQuickItem(QQuickItem *parent = nullptr)
virtual ~QQuickItem() override
bool acceptHoverEvents() const
bool acceptTouchEvents() 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
QObject * containmentMask() const
virtual bool contains(const QPointF &point) const
QCursor cursor() const
bool filtersChildMouseEvents() const
QQuickItem::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 isAncestorOf(const QQuickItem *child) const
bool isEnabled() const
bool isFocusScope() const
virtual bool isTextureProvider() const
bool isVisible() const
bool keepMouseGrab() const
bool keepTouchGrab() const
QPointF mapFromGlobal(const QPointF &point) 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 mapToGlobal(const QPointF &point) 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 setAcceptTouchEvents(bool enabled)
void setAcceptedMouseButtons(Qt::MouseButtons buttons)
void setActiveFocusOnTab(bool)
void setAntialiasing(bool)
void setBaselineOffset(qreal)
void setClip(bool)
void setContainmentMask(QObject *mask)
void setCursor(const QCursor &cursor)
void setEnabled(bool)
void setFiltersChildMouseEvents(bool filter)
void setFlag(QQuickItem::Flag flag, bool enabled = true)
void setFlags(QQuickItem::Flags flags)
void setFocus(bool)
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 setSize(const QSizeF &size)
void setSmooth(bool)
void setState(const QString &)
void setTransformOrigin(QQuickItem::TransformOrigin)
void setVisible(bool)
void setWidth(qreal)
void setX(qreal)
void setY(qreal)
void setZ(qreal)
QSizeF size() const
bool smooth() const
void stackAfter(const QQuickItem *sibling)
void stackBefore(const QQuickItem *sibling)
QString state() const
virtual QSGTextureProvider * textureProvider() const
QQuickItem::TransformOrigin transformOrigin() const
void ungrabMouse()
void ungrabTouchPoints()
void unsetCursor()
qreal width() const
QQuickWindow * window() const
qreal x() const
qreal y() const
qreal z() const

Public Slots

void update()

Signals

void activeFocusChanged(bool)
void activeFocusOnTabChanged(bool)
void antialiasingChanged(bool)
void baselineOffsetChanged(qreal)
void childrenRectChanged(const QRectF &)
void clipChanged(bool)
void containmentMaskChanged()
void enabledChanged()
void focusChanged(bool)
void heightChanged()
void implicitHeightChanged()
void implicitWidthChanged()
void opacityChanged()
void parentChanged(QQuickItem *)
void rotationChanged()
void scaleChanged()
void smoothChanged(bool)
void stateChanged(const QString &)
void transformOriginChanged(QQuickItem::TransformOrigin)
void visibleChanged()
void widthChanged()
void windowChanged(QQuickWindow *window)
void xChanged()
void yChanged()
void zChanged()

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

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

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

virtual void classBegin() override
virtual void componentComplete() override
virtual bool event(QEvent *ev) override

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

Все визуальные элементы в 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, этот слот будет вызван в потоке отрисовки, в то время как поток GUI заблокирован. Это эквивалентно подключению к QQuickWindow::sceneGraphInvalidated(). Контекст OpenGL окна данного элемента будет связан, когда этот слот вызывается. Исключением является случай, если собственный OpenGL был уничтожен вне контроля Qt, например, через EGL_CONTEXT_LOST.
  • Элемент удаляется из сцены; Если элемент извлекается из сцены, например, потому что его родитель был установлен в null или элемент в другом окне, QQuickItem::releaseResources() будет вызван в потоке GUI. QQuickWindow::scheduleRenderJob() следует использовать для планирования очистки ресурсов отрисовки.
  • Элемент удаляется; Когда выполняется деструктор элемента, он должен удалить все графические ресурсы, которые он имеет. Если ни одно из двух условий выше не было выполнено, элемент будет частью окна, и можно использовать QQuickWindow::scheduleRenderJob() для их очистки. Если реализация игнорирует вызов QQuickItem::releaseResources(), в многих случаях элемент больше не будет иметь доступа к QQuickWindow и, следовательно, не будет иметь средств для планирования очистки.

При планировании очистки графических ресурсов с помощью 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.

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

перечисление QQuickItem::Flagфлаги QQuickItem::Flags

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

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

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

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

перечисление 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 содержит новое значение отношения пикселей устройства.
QQuickItem::ItemAntialiasingHasChanged 8 Изменилось значение сглаживания. Текущее (булево) значение можно найти в QQuickItem::antialiasing.
QQuickItem::ItemEnabledHasChanged 10 Изменилось состояние активности элемента. ItemChangeData::boolValue содержит новое состояние активности. (с Qt 5.10)

перечисление 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().

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

implicitHeight : qreal

implicitWidth : qreal

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

По умолчанию неявный размер большинства элементов равен 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 и явное задание ширины приводит к снижению производительности, так как текст должен быть выведен дважды.

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

Сигнал уведомления:

void activeFocusChanged(bool)

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

activeFocusOnTab : bool

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

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

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

Сигнал уведомления:

void activeFocusOnTabChanged(bool)

antialiasing : bool

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

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

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

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

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

Сигнал уведомления:

void antialiasingChanged(bool)

baselineOffset : qreal

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

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

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

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

qreal baselineOffset() const
void setBaselineOffset(qreal)

Сигнал уведомления:

void baselineOffsetChanged(qreal)

childrenRect : const QRectF

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

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

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

QRectF childrenRect()

Сигнал уведомления:

void childrenRectChanged(const QRectF &)

clip : bool

Это свойство указывает, включена ли обрезка. Значение обрезки по умолчанию — false.

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

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

bool clip() const
void setClip(bool)

Сигнал уведомления:

void clipChanged(bool)

enabled : bool

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

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

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

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

bool isEnabled() const
void setEnabled(bool)

Сигнал уведомления:

void enabledChanged()

См. также 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
        }
    }
}

В целях этого свойства вся сцена предполагается как FocusScope. Практически это означает, что следующий 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)

Сигнал уведомления:

void focusChanged(bool)

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

height : qreal

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

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

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

Сигнал уведомления:

void heightChanged()

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)

Сигнал уведомления:

void opacityChanged()

См. также visible.

parent : QQuickItem*

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

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

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

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

Сигнал уведомления:

void parentChanged(QQuickItem *)

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)

Сигнал уведомления:

void rotationChanged()

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

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)

Сигнал уведомления:

void scaleChanged()

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

smooth : bool

Определяет, сглаживается ли элемент.

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

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

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

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

bool smooth() const
void setSmooth(bool)

Сигнал уведомления:

void smoothChanged(bool)

state : QString

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

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

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

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

Сигнал уведомления:

void stateChanged(const QString &)

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

transformOrigin : TransformOrigin

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

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

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

QQuickItem::TransformOrigin transformOrigin() const
void setTransformOrigin(QQuickItem::TransformOrigin)

Сигнал уведомления:

void transformOriginChanged(QQuickItem::TransformOrigin)

visible : bool

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

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

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

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

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

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

bool isVisible() const
void setVisible(bool)

Сигнал уведомления:

void visibleChanged()

См. также прозрачность и enabled.

ширина : qreal

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

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

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

Сигнал уведомления:

void widthChanged()

x : qreal

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

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

qreal x() const
void setX(qreal)

Сигнал уведомления:

void xChanged()

y : qreal

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

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

qreal y() const
void setY(qreal)

Сигнал уведомления:

void yChanged()

z : qreal

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

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

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

То же z - потомки, добавленные позже, над потомками, добавленными раньше:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Более высокий порядок наложения сверху:
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
        }
    }
}

Более низкий порядок наложения снизу:
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)

Сигнал уведомления:

void zChanged()

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

QQuickItem::QQuickItem(QQuickItem *parent = nullptr)

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

parent будет использоваться как визуальный родитель и родительский элемент QObject.

[slot] void QQuickItem::update()

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

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

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

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

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

[override virtual] QQuickItem::~QQuickItem()

Удаляет QQuickItem.

bool QQuickItem::acceptHoverEvents() const

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

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

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

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

bool QQuickItem::acceptTouchEvents() const

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

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

Если значение false, элемент не будет получать события касания через функцию touchEvent().

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

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

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

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

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

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

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

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

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

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

Примечание: Эта функция может быть вызвана через механизм метаобъектов и из QML. См. Q_INVOKABLE.

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

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

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

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

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

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

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

[override virtual protected] void QQuickItem::classBegin()

Переопределяет: QQmlParserStatus::classBegin().

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

[override virtual protected] void QQuickItem::componentComplete()

Переопределяет: QQmlParserStatus::componentComplete().

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

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

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

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

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

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

QCursor QQuickItem::cursor() const

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

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

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

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

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределили эту функцию. Если вы не принимаете событие, вызовите event->ignore().

См. также Перетаскивание и Перетаскивание и放下.

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределили эту функцию. Если вы не принимаете событие, вызовите event->ignore().

См. также Перетаскивание и Перетаскивание и放下.

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределили эту функцию. Если вы не принимаете событие, вызовите event->ignore().

См. также Перетаскивание и Перетаскивание и放下.

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределили эту функцию. Если вы не принимаете событие, вызовите event->ignore().

См. также Перетаскивание и Перетаскивание и放下.

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

Переопределяет: QObject::event(QEvent *e).

bool QQuickItem::filtersChildMouseEvents() const

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

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

QQuickItem::Flags QQuickItem::flags() const

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

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределили эту функцию. Если вы не принимаете событие, вызовите event->ignore().

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределили эту функцию. Если вы не принимаете событие, вызовите event->ignore().

void QQuickItem::forceActiveFocus()

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

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

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

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

См. также activeFocus.

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

Это перегруженная функция.

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

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

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

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

См. также 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)

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не хотите принимать событие, вызовите event->ignore().

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не хотите принимать событие, вызовите event->ignore().

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не хотите принимать событие, вызовите event->ignore().

qreal QQuickItem::implicitWidth() const

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

Примечание: Функция-геттер для свойства implicitWidth.

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не хотите принимать событие, вызовите event->ignore().

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

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

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

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

bool QQuickItem::isAncestorOf(const QQuickItem *child) const

Возвращает true, если этот элемент является предком child (т.е., если этот элемент является родителем child или одним из предков родителя child).

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

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

[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(QQuickItem::ItemChange change, const QQuickItem::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.

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не хотите принимать событие, вызовите event->ignore().

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не хотите принимать событие, вызовите event->ignore().

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

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

В преобразовании используются следующие свойства элемента: x, y, scale, rotation, transformOrigin и transform.

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

Примечание: Позиционирование окна выполняется менеджером окон, и это значение рассматривается только как подсказка. Таким образом, фактическая позиция окна может отличаться от ожидаемой.

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

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

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

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

В преобразовании используются следующие свойства элемента: x, y, scale, rotation, transformOrigin и transform.

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

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

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

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

В преобразовании используются следующие свойства элемента: x, y, scale, rotation, transformOrigin и transform.

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

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

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

В преобразовании используются следующие свойства элемента: x, y, scale, rotation, transformOrigin и transform.

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

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

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

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

В отображении используются следующие свойства элемента: x, y, масштаб, вращение, transformOrigin и transform.

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

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

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

В отображении используются следующие свойства элемента: x, y, масштаб, вращение, transformOrigin и transform.

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

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

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

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

В отображении используются следующие свойства элемента: x, y, масштаб, вращение, transformOrigin и transform.

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

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

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

В отображении используются следующие свойства элемента: x, y, масштаб, вращение, transformOrigin и transform.

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

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

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

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

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

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

В отображении используются следующие свойства элемента: x, y, масштаб, вращение, transformOrigin и transform.

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

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

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

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

В отображении используются следующие свойства элемента: x, y, масштаб, вращение, transformOrigin и transform.

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие при переопределении этой функции. Если вы не принимаете событие, вызовите event->ignore().

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие при переопределении этой функции. Если вы не принимаете событие, вызовите event->ignore().

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие при переопределении этой функции. Если вы не принимаете событие, вызовите event->ignore().

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие при переопределении этой функции. Если вы не принимаете событие, вызовите event->ignore().

[virtual protected] void QQuickItem::mouseUngrabEvent()

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

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

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

Примечание: К этой функции можно обратиться через систему метаобъектов и из QML. См. Q_INVOKABLE.

void QQuickItem::polish()

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

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

См. также updatePolish() и QQuickTest::qIsPolishScheduled().

[virtual protected] void QQuickItem::releaseResources()

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

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

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

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

QQuickItem *QQuickItem::scopedFocusItem() const

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

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

void QQuickItem::setAcceptHoverEvents(bool enabled)

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

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

void QQuickItem::setAcceptTouchEvents(bool enabled)

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

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

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

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

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

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

void QQuickItem::setCursor(const QCursor &cursor)

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

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

void QQuickItem::setFiltersChildMouseEvents(bool filter)

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

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

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

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

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

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

void QQuickItem::setFlags(QQuickItem::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::setSize(const QSizeF &size)

Устанавливает размер элемента в size.

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

См. также size, setWidth и setHeight.

QSizeF QQuickItem::size() const

Возвращает размер элемента.

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

См. также setSize, width и height.

void QQuickItem::stackAfter(const QQuickItem *sibling)

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

Предполагая, что значения z обоих элементов одинаковы, это приведёт к отображению sibling под этим элементом.

Если оба элемента имеют activeFocusOnTab установленным в true, это также приведёт к изменению порядка фокуса при нажатии клавиши Tab, и sibling получит фокус перед этим элементом.

Указанный sibling должен быть дочерним элементом этого элемента; то есть, они должны иметь одного и того же непосредственного parent.

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

void QQuickItem::stackBefore(const QQuickItem *sibling)

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

Предполагая, что значения z обоих элементов одинаковы, это приведёт к отображению sibling над этим элементом.

Если оба элемента имеют activeFocusOnTab установленным в true, это также приведёт к изменению порядка фокуса при нажатии клавиши Tab, и sibling получит фокус после этого элемента.

Указанный sibling должен быть дочерним элементом этого элемента; то есть, они должны иметь одного и того же непосредственного parent.

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

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

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

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

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределяете эту функцию. Если вы не принимаете событие, вызовите event->ignore().

[virtual protected] void QQuickItem::touchUngrabEvent()

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

void QQuickItem::ungrabMouse()

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

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

void QQuickItem::ungrabTouchPoints()

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

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

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

void QQuickItem::unsetCursor()

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

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

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

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

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

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

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

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

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() графический процессор планирует событие polish для этого элемента. Когда графический процессор готов отобразить этот элемент, он вызывает updatePolish(), чтобы выполнить любой необходимый макет элемента перед отрисовкой следующего кадра.

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

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

Событие принимается по умолчанию, поэтому нет необходимости явно принимать событие, если вы переопределите эту функцию. Если вы не принимаете событие, вызовите event->ignore().

[protected] bool QQuickItem::widthValid() const

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

QQuickWindow *QQuickItem::window() const

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

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

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

Spec-Zone.ru

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