Spec-Zone.ru › Qt 5.11

Класс QQuickItem

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

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

QQuickFramebufferObject и QQuickPaintedItem

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

Общедоступные типы

класс ItemChangeData
класс UpdatePaintNodeData
перечисление Flag { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops }
флаги Flags
перечисление ItemChange { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ..., ItemEnabledHasChanged }
перечисление TransformOrigin { TopLeft, Top, TopRight, Left, ..., BottomRight }

Свойства

  • activeFocus : const bool
  • activeFocusOnTab : bool
  • antialiasing : bool
  • baselineOffset : qreal
  • childrenRect : const QRectF
  • clip : bool
  • containmentMask : QObject*
  • enabled : bool
  • focus : bool
  • height : qreal
  • implicitHeight : qreal
  • implicitWidth : qreal
  • opacity : qreal
  • parent : QQuickItem*
  • rotation : qreal
  • scale : qreal
  • smooth : bool
  • state : QString
  • transformOrigin : TransformOrigin
  • visible : bool
  • width : qreal
  • x : qreal
  • y : qreal
  • z : qreal
  • 1 свойство унаследовано от QObject

Общедоступные функции

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
  • 34 public functions inherited from QObject
  • 2 public functions inherited from QQmlParserStatus

Public Slots

void update()
  • 1 public slot inherited from QObject

Signals

void containmentMaskChanged()
void windowChanged(QQuickWindow *window)
  • 2 signals inherited from QObject

Protected Functions

виртуальный 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 *)
виртуальный void focusOutEvent(QFocusEvent *)
виртуальный 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(QQuickItem::ItemChange change, const QQuickItem::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, QQuickItem::UpdatePaintNodeData *updatePaintNodeData)
виртуальный void updatePolish()
виртуальный void wheelEvent(QWheelEvent *event)
bool widthValid() const

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

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

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

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

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 элемента, который в настоящее время получает ввод с клавиатуры.

Обычно activeFocus приобретается путем установки 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

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

containmentMask : QObject*

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

QObject * containmentMask() const
void setContainmentMask(QObject *mask)

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

void containmentMaskChanged()

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()

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)

См. также Transform и Rotation.

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)

См. также Transform и Scale.

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.

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

QQuickItem::TransformOrigin transformOrigin() const
void setTransformOrigin(QQuickItem::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)

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)

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

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

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

QQuickItem::QQuickItem(QQuickItem *parent = nullptr)

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

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

[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) в системе координат этого элемента.

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

Примечание: К этой функции можно обратиться через систему метаобъектов и из 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bool QQuickItem::filtersChildMouseEvents() const

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

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

QQuickItem::Flags QQuickItem::flags() const

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

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

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

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

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

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

void QQuickItem::forceActiveFocus()

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

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

Причина изменения фокуса — 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.

Примечание: Эта функция будет рендерить элемент на внеэкранной поверхности и копировать эту поверхность из памяти GPU в память CPU, что может быть довольно дорогостоящим. Для "живого" предварительного просмотра используйте слои или 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().

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.

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

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

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, scale, rotation, transformOrigin и transform.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также Концепции — Визуальные координаты в 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, возвращает следующий элемент в обратном направлении.

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

void QQuickItem::polish()

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

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

[virtual protected] void QQuickItem::releaseResources()

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

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

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

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

QQuickItem *QQuickItem::scopedFocusItem() const

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

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

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 для этого элемента.

См. также 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, это также приведет к изменению порядка фокуса табуляции, при этом sibling получит фокус до этого элемента.

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

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

void QQuickItem::stackBefore(const QQuickItem *sibling)

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

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

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

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

См. также Концепции - Визуальный родитель в 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::ItemHasContents, могут вызывать QQuickItem::update().

[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(), графическое дерево сцены планирует событие полировки для этого элемента. Когда графическое дерево сцены готово отобразить этот элемент, оно вызывает 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.11/qquickitem.html

Spec-Zone.ru

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