Класс QQuickItem
Класс QQuickItem предоставляет самый базовый из всех визуальных элементов в Qt Quick. Подробнее...
| Заголовок: | #include <QQuickItem> |
| qmake: | QT += quick |
| Создаётся из: | Item |
| Наследует: | QObject и QQmlParserStatus |
| Наследуется от: | QQuickFramebufferObject, QQuickPaintedItem и QWaylandQuickItem |
Публичные типы
| класс | ItemChangeData |
| класс | UpdatePaintNodeData |
| перечисление | Флаг { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops } |
| флаги | Флаги |
| перечисление | Изменение элемента { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ..., ItemAntialiasingHasChanged } |
| перечисление | Исходная точка преобразования { TopLeft, Top, TopRight, Left, ..., BottomRight } |
Свойства
|
- 1 свойство унаследовано от QObject
Публичные функции
| QQuickItem(QQuickItem *parent = Q_NULLPTR) | |
| virtual | ~QQuickItem() |
| bool | acceptHoverEvents() const |
| Qt::MouseButtons | acceptedMouseButtons() const |
| bool | activeFocusOnTab() const |
| bool | antialiasing() const |
| qreal | baselineOffset() const |
| QQuickItem * | childAt(qreal x, qreal y) const |
| QList<QQuickItem *> | childItems() const |
| QRectF | childrenRect() |
| bool | clip() const |
| virtual bool | contains(const QPointF &point) const |
| QCursor | cursor() const |
| bool | filtersChildMouseEvents() const |
| Flags | flags() const |
| void | forceActiveFocus() |
| void | forceActiveFocus(Qt::FocusReason reason) |
| void | grabMouse() |
| QSharedPointer<QQuickItemGrabResult> | grabToImage(const QSize &targetSize = QSize()) |
| void | grabTouchPoints(const QVector<int> &ids) |
| bool | hasActiveFocus() const |
| bool | hasFocus() const |
| qreal | height() const |
| qreal | implicitHeight() const |
| qreal | implicitWidth() const |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const |
| bool | 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 | setAcceptedMouseButtons(Qt::MouseButtons buttons) |
| void | setActiveFocusOnTab(bool) |
| void | setAntialiasing(bool) |
| void | setBaselineOffset(qreal) |
| void | setClip(bool) |
| void | setCursor(const QCursor &cursor) |
| void | setEnabled(bool) |
| void | setFiltersChildMouseEvents(bool filter) |
| void | setFlag(Flag flag, bool enabled = true) |
| void | setFlags(Flags flags) |
| void | setFocus(bool) |
| void | setFocus(bool focus, Qt::FocusReason reason) |
| void | setHeight(qreal) |
| void | setImplicitHeight(qreal) |
| void | setImplicitWidth(qreal) |
| void | setKeepMouseGrab(bool keep) |
| void | setKeepTouchGrab(bool keep) |
| void | setOpacity(qreal) |
| void | setParentItem(QQuickItem *parent) |
| void | setRotation(qreal) |
| void | setScale(qreal) |
| void | setSmooth(bool) |
| void | setState(const QString &) |
| void | setTransformOrigin(TransformOrigin) |
| void | setVisible(bool) |
| void | setWidth(qreal) |
| void | setX(qreal) |
| void | setY(qreal) |
| void | setZ(qreal) |
| bool | smooth() const |
| void | stackAfter(const QQuickItem *sibling) |
| void | stackBefore(const QQuickItem *sibling) |
| QString | state() const |
| virtual QSGTextureProvider * | textureProvider() const |
| TransformOrigin | transformOrigin() const |
| void | ungrabMouse() |
| void | ungrabTouchPoints() |
| void | unsetCursor() |
| qreal | width() const |
| QQuickWindow * | window() const |
| qreal | x() const |
| qreal | y() const |
| qreal | z() const |
- 32 публичные функции, унаследованные от QObject
- 2 публичные функции, унаследованные от QQmlParserStatus
Публичные слоты
| void | update() |
- 1 публичный слот, унаследованный от QObject
Сигналы
| void | windowChanged(QQuickWindow *window) |
- 2 сигнала, унаследованные от QObject
Защищённые функции
| виртуальный bool | childMouseEventFilter(QQuickItem *item, QEvent *event) |
| виртуальный void | dragEnterEvent(QDragEnterEvent *event) |
| виртуальный void | dragLeaveEvent(QDragLeaveEvent *event) |
| виртуальный void | dragMoveEvent(QDragMoveEvent *event) |
| виртуальный void | dropEvent(QDropEvent *event) |
| виртуальный void | focusInEvent(QFocusEvent *event) |
| виртуальный void | focusOutEvent(QFocusEvent *event) |
| виртуальный void | geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) |
| bool | heightValid() const |
| виртуальный void | hoverEnterEvent(QHoverEvent *event) |
| виртуальный void | hoverLeaveEvent(QHoverEvent *event) |
| виртуальный void | hoverMoveEvent(QHoverEvent *event) |
| виртуальный void | inputMethodEvent(QInputMethodEvent *event) |
| bool | isComponentComplete() const |
| виртуальный void | itemChange(ItemChange change, const ItemChangeData &value) |
| виртуальный void | keyPressEvent(QKeyEvent *event) |
| виртуальный void | keyReleaseEvent(QKeyEvent *event) |
| виртуальный void | mouseDoubleClickEvent(QMouseEvent *event) |
| виртуальный void | mouseMoveEvent(QMouseEvent *event) |
| виртуальный void | mousePressEvent(QMouseEvent *event) |
| виртуальный void | mouseReleaseEvent(QMouseEvent *event) |
| виртуальный void | mouseUngrabEvent() |
| виртуальный void | releaseResources() |
| виртуальный void | touchEvent(QTouchEvent *event) |
| виртуальный void | touchUngrabEvent() |
| void | updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput) |
| виртуальный QSGNode * | updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData) |
| виртуальный void | updatePolish() |
| виртуальный void | wheelEvent(QWheelEvent *event) |
| bool | widthValid() const |
Реализованные защищенные функции
| виртуальный void | classBegin() |
| виртуальный void | componentComplete() |
| виртуальный bool | event(QEvent *ev) |
- 9 защищенных функций, унаследованных от QObject
Дополнительные унаследованные члены
- 11 статических публичных членов, унаследованных от QObject
Подробное описание
Класс QQuickItem предоставляет наиболее базовые визуальные элементы в Qt Quick.
Все визуальные элементы в Qt Quick наследуются от QQuickItem. Хотя экземпляр QQuickItem не имеет визуального представления, он определяет все атрибуты, общие для визуальных элементов, такие как положение x и y, ширина и высота, привязка и поддержка обработки клавиш.
Вы можете создать подкласс QQuickItem, чтобы предоставить свой собственный пользовательский визуальный элемент, который наследует эти функции.
Пользовательские элементы графика сцены
Все визуальные элементы QML отрисовываются с помощью графика сцены, низкоуровневой высокопроизводительной стековой системы отрисовки, тесно связанной с OpenGL. Подклассы QQuickItem могут добавить свой собственный пользовательский контент в график сцены, установив флаг QQuickItem::ItemHasContents и переопределив функцию QQuickItem::updatePaintNode().
Предупреждение: Крайне важно, чтобы операции OpenGL и взаимодействие с графиком сцены происходили исключительно в потоке отрисовки, в основном во время вызова updatePaintNode(). Лучшее правило — использовать только классы с префиксом "QSG" внутри функции QQuickItem::updatePaintNode().
Примечание: Все классы с префиксом QSG должны использоваться только в потоке отрисовки графика сцены. Дополнительную информацию см. в разделе График сцены и отрисовка.
Обработка графических ресурсов
Предпочтительный способ обработки очистки графических ресурсов, используемых в графике сцены, — это полагаться на автоматическую очистку узлов. QSGNode, возвращаемый из QQuickItem::updatePaintNode(), автоматически удаляется в правильном потоке в нужное время. Деревья экземпляров QSGNode управляются с помощью QSGNode::OwnedByParent, который по умолчанию установлен. Таким образом, для большинства пользовательских элементов графика сцены дополнительных действий не потребуется.
Реализации, которые хранят графические ресурсы за пределами дерева узлов, такие как элемент, реализующий QQuickItem::textureProvider(), должны позаботиться об их правильной очистке в зависимости от того, как элемент используется в QML. Ситуации, которые необходимо обработать:
- График сцены становится недействительным; Это может произойти, например, если окно скрыто с помощью QQuickWindow::hide(). Если класс элемента реализует
slotс именемinvalidateSceneGraph(), этот слот будет вызван в потоке отрисовки, в то время как поток GUI заблокирован. Это эквивалентно подключению к QQuickWindow::sceneGraphInvalidated(). Контекст OpenGL окна данного элемента будет привязан при вызове этого слота. Исключением является случай, если собственный OpenGL был уничтожен за пределами контроля Qt, например, черезEGL_CONTEXT_LOST. - Элемент удаляется из сцены; Если элемент удаляется из сцены, например, потому что его родитель был установлен в
nullили в другом окне, QQuickItem::releaseResources() будет вызвана в потоке GUI. QQuickWindow::scheduleRenderJob() следует использовать для планирования очистки ресурсов отрисовки. - Элемент удаляется; Когда выполняется деструктор элемента, он должен удалить все графические ресурсы, которые он имеет. Если ни одно из двух условий выше еще не выполнено, элемент будет частью окна, и возможно использование QQuickWindow::scheduleRenderJob() для планирования их очистки. Если реализация игнорирует вызов QQuickItem::releaseResources(), элемент во многих случаях больше не будет иметь доступа к QQuickWindow и, следовательно, не будет иметь возможности планировать очистку.
При планировании очистки графических ресурсов с помощью 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. Параметр окна равен 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. |
enum QQuickItem::TransformOrigin
Управляет точкой, относительно которой применяются простые преобразования, такие как масштабирование.
| Постоянная | Значение | Описание |
|---|---|---|
QQuickItem::TopLeft |
0 |
Левый верхний угол элемента. |
QQuickItem::Top |
1 |
Центр верхней части элемента. |
QQuickItem::TopRight |
2 |
Правый верхний угол элемента. |
QQuickItem::Left |
3 |
Левая точка вертикального центра. |
QQuickItem::Center |
4 |
Центр элемента. |
QQuickItem::Right |
5 |
Правая точка вертикального центра. |
QQuickItem::BottomLeft |
6 |
Левый нижний угол элемента. |
QQuickItem::Bottom |
7 |
Центр нижней части элемента. |
QQuickItem::BottomRight |
8 |
Правый нижний угол элемента. |
См. также transformOrigin() и setTransformOrigin().
Документация свойств
activeFocus : const bool
Это только для чтения свойство, указывающее, имеет ли элемент активный фокус.
Если activeFocus имеет значение true, то этот элемент либо получает ввод с клавиатуры в данный момент, либо является предком FocusScope элемента, который в данный момент получает ввод с клавиатуры.
Обычно активный фокус приобретается путем установки focus на элементе и его окружающих объектах FocusScope. В следующем примере объекты input и focusScope будут иметь активный фокус, в то время как корневой прямоугольный объект — нет.
import QtQuick 2.0
Rectangle {
width: 100; height: 100
FocusScope {
focus: true
TextInput {
id: input
focus: true
}
}
} Функции доступа:
| bool | hasActiveFocus() const |
См. также focus и Фокус клавиатуры в Qt Quick.
activeFocusOnTab : bool
Это свойство содержит значение, указывающее, нужно ли элементу находиться в цепочке фокуса 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) |
enabled : bool
Это свойство содержит значение, указывающее, получает ли элемент события мыши и клавиатуры. По умолчанию оно имеет значение true.
Непосредственное изменение этого свойства влияет на значение enabled дочерних элементов. При установке в значение false, значения enabled всех дочерних элементов также становятся false. При установке в значение true, значения enabled дочерних элементов возвращаются к true, если они явно не были установлены в false.
Установка этого свойства в false автоматически приводит к установке activeFocus в false, и этот элемент больше не будет получать события клавиатуры.
Функции доступа:
| bool | isEnabled() const |
| void | setEnabled(bool) |
См. также visible.
focus : bool
Это свойство содержит значение, указывающее, имеет ли элемент фокус внутри окружающего FocusScope. Если true, этот элемент получит активный фокус, когда окружающий FocusScope получит активный фокус.
В следующем примере input получит активный фокус, когда scope получит активный фокус:
import QtQuick 2.0
Rectangle {
width: 100; height: 100
FocusScope {
id: scope
TextInput {
id: input
focus: true
}
}
} Для целей этого свойства вся сцена предполагается как область фокуса. Практически это означает, что следующий QML предоставит активный фокус input при запуске.
Rectangle {
width: 100; height: 100
TextInput {
id: input
focus: true
}
} Функции доступа:
| bool | hasFocus() const |
| void | setFocus(bool) |
| void | setFocus(bool focus, Qt::FocusReason reason) |
См. также activeFocus и Фокус клавиатуры в Qt Quick.
height : qreal
Это свойство содержит высоту этого элемента.
Функции доступа:
| qreal | height() const |
| void | setHeight(qreal) |
| void | resetHeight() |
implicitHeight : qreal
Определяет естественную высоту элемента, если не указана width или height.
Неявный размер по умолчанию для большинства элементов — 0x0, однако некоторые элементы имеют собственный неявный размер, который нельзя переопределить, например, Image и Text.
Установка неявного размера полезна для определения компонентов, которые имеют предпочтительный размер, основанный на их содержании, например:
// Label.qml
import QtQuick 2.0
Item {
property alias icon: image.source
property alias label: text.text
implicitWidth: text.implicitWidth + image.implicitWidth
implicitHeight: Math.max(text.implicitHeight, image.implicitHeight)
Image { id: image }
Text {
id: text
wrapMode: Text.Wrap
anchors.left: image.right; anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
}
} Примечание: Использование implicitWidth элементов Text или TextEdit и явное указание ширины приводит к снижению производительности, поскольку текст должен быть выведен дважды.
Функции доступа:
| qreal | implicitHeight() const |
| void | setImplicitHeight(qreal) |
implicitWidth : qreal
Определяет естественную ширину элемента, если не указана width или height.
Неявный размер по умолчанию для большинства элементов — 0x0, однако некоторые элементы имеют собственный неявный размер, который нельзя переопределить, например, Image и Text.
Установка неявного размера полезна для определения компонентов, которые имеют предпочтительный размер, основанный на их содержании, например:
// Label.qml
import QtQuick 2.0
Item {
property alias icon: image.source
property alias label: text.text
implicitWidth: text.implicitWidth + image.implicitWidth
implicitHeight: Math.max(text.implicitHeight, image.implicitHeight)
Image { id: image }
Text {
id: text
wrapMode: Text.Wrap
anchors.left: image.right; anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
}
} Примечание: Использование implicitWidth элементов Text или TextEdit и явное указание ширины приводит к снижению производительности, поскольку текст должен быть выведен дважды.
Функции доступа:
| qreal | implicitWidth() const |
| void | setImplicitWidth(qreal) |
opacity : qreal
Это свойство определяет непрозрачность элемента. Непрозрачность задается числом от 0,0 (полностью прозрачный) до 1,0 (полностью непрозрачный). Значение по умолчанию — 1,0.
При установке этого свойства заданная непрозрачность также применяется к дочерним элементам. В некоторых случаях это может иметь нежелательный эффект. Например, на втором наборе прямоугольников ниже красный прямоугольник имеет заданную непрозрачность 0,5, что влияет на непрозрачность его синего дочернего прямоугольника, даже если у дочернего элемента не задана непрозрачность.
Значения вне диапазона от 0 до 1 будут ограничены.
Item {
Rectangle {
color: "red"
width: 100; height: 100
Rectangle {
color: "blue"
x: 50; y: 50; width: 100; height: 100
}
}
} |
|
Item {
Rectangle {
opacity: 0.5
color: "red"
width: 100; height: 100
Rectangle {
color: "blue"
x: 50; y: 50; width: 100; height: 100
}
}
} |
Изменение непрозрачности элемента не влияет на получение им событий пользовательского ввода. (В отличие от этого, установка свойства visible в false блокирует события мыши, а установка свойства enabled в false блокирует события мыши и клавиатуры, а также снимает активный фокус с элемента.)
Функции доступа:
| qreal | opacity() const |
| void | setOpacity(qreal) |
См. также visible.
parent : QQuickItem *
Это свойство содержит визуального родителя элемента.
Примечание: Понятие визуального родителя отличается от понятия родителя QObject. Визуальный родитель элемента может не совпадать с его родительским объектом. Подробнее см. Концепции - Визуальный родитель в Qt Quick.
Функции доступа:
| QQuickItem * | parentItem() const |
| void | setParentItem(QQuickItem *parent) |
rotation : qreal
Это свойство содержит угол поворота элемента в градусах по часовой стрелке вокруг transformOrigin.
Значение по умолчанию — 0 градусов (то есть без поворота).
Rectangle {
color: "blue"
width: 100; height: 100
Rectangle {
color: "red"
x: 25; y: 25; width: 50; height: 50
rotation: 30
}
} |
Функции доступа:
| qreal | rotation() const |
| void | setRotation(qreal) |
См. также Преобразование и Поворот.
scale : qreal
Это свойство содержит коэффициент масштабирования для этого элемента.
Масштаб меньше 1,0 приводит к отображению элемента в меньшем размере, а масштаб больше 1,0 — в большем размере. Отрицательный масштаб приводит к отражению элемента при отображении.
Значение по умолчанию — 1,0.
Масштабирование применяется от transformOrigin.
import QtQuick 2.0
Rectangle {
color: "blue"
width: 100; height: 100
Rectangle {
color: "green"
width: 25; height: 25
}
Rectangle {
color: "red"
x: 25; y: 25; width: 50; height: 50
scale: 1.4
}
} |
Функции доступа:
| qreal | scale() const |
| void | setScale(qreal) |
См. также Преобразование и Масштабирование.
smooth : bool
Указывает, сглажен ли элемент.
В основном используется в элементах на основе изображений, чтобы решить, должен ли элемент использовать сглаживание или нет. Сглаживание выполняется с помощью линейной интерполяции, а отсутствие сглаживания — с помощью ближайшего соседа.
В Qt Quick 2.0 это свойство минимально влияет на производительность.
По умолчанию это свойство установлено в true.
Функции доступа:
| bool | smooth() const |
| void | setSmooth(bool) |
state : QString
Это свойство содержит имя текущего состояния элемента.
Если элемент находится в своем состоянии по умолчанию, то есть не было установлено явного состояния, это свойство содержит пустую строку. Аналогично, вы можете вернуть элемент в исходное состояние, установив это свойство в пустую строку.
Функции доступа:
| QString | state() const |
| void | setState(const QString &) |
См. также Состояния Qt Quick.
transformOrigin : TransformOrigin
Это свойство содержит точку начала преобразования, вокруг которой применяются преобразования масштабирования и поворота.
Доступны девять точек начала преобразования, как показано на изображении ниже. Значение по умолчанию — Item.Center.
Функции доступа:
| TransformOrigin | transformOrigin() const |
| void | setTransformOrigin(TransformOrigin) |
visible : bool
Это свойство определяет, виден ли элемент. По умолчанию оно равно true.
Установка этого свойства напрямую влияет на значение visible дочерних элементов. При установке в false, значение visible всех дочерних элементов также становится false. При установке в true, значения visible дочерних элементов возвращаются к true, если они явно не установлены в false.
(Из-за этого поведенческого эффекта использование свойства visible может не иметь ожидаемого эффекта, если привязка свойства должна реагировать только на явные изменения свойства. В таких случаях может быть лучше использовать свойство opacity.)
Если это свойство установлено в false, элемент больше не будет получать события мыши, но продолжит получать события клавиатуры и сохранит фокус клавиатуры focus, если он был установлен. (В отличие от этого, установка свойства enabled в false блокирует как события мыши, так и клавиатуры, а также снимает фокус с элемента.)
Примечание: Значение этого свойства изменяется только при изменении этого свойства или свойства родительского элемента visible. Оно не меняется, например, если этот элемент перемещается за пределы экрана или если значение opacity меняется на 0.
Функции доступа:
| bool | isVisible() const |
| void | setVisible(bool) |
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) |
Документация по членам-функциям
QQuickItem::QQuickItem(QQuickItem *parent = Q_NULLPTR)
Создаёт QQuickItem с заданным parent.
[virtual] QQuickItem::~QQuickItem()
Уничтожает QQuickItem.
bool QQuickItem::acceptHoverEvents() const
Возвращает, принимаются ли события наведения курсора этим элементом.
Значение по умолчанию — false.
Если значение false, элемент не будет получать события наведения курсора через функции hoverEnterEvent(), hoverMoveEvent() и hoverLeaveEvent().
См. также setAcceptHoverEvents().
Qt::MouseButtons QQuickItem::acceptedMouseButtons() const
Возвращает принятые этим элементом кнопки мыши.
Значение по умолчанию — Qt::NoButton; то есть, никакие кнопки мыши не принимаются.
Если элемент не принимает кнопку мыши для определённого события мыши, событие не будет передано элементу и будет передано следующему элементу в иерархии элементов вместо этого.
См. также setAcceptedMouseButtons().
QQuickItem *QQuickItem::childAt(qreal x, qreal y) const
Возвращает первый видимый дочерний элемент, найденный в точке (x, y) в системе координат этого элемента.
Возвращает 0, если такого элемента нет.
QList<QQuickItem *> QQuickItem::childItems() const
Возвращает дочерние элементы этого элемента.
[virtual protected] bool QQuickItem::childMouseEventFilter(QQuickItem *item, QEvent *event)
Переопределите этот метод, чтобы отфильтровать события мыши, которые получают дочерние элементы этого элемента.
Этот метод будет вызван только в том случае, если filtersChildMouseEvents() имеет значение true.
Возвращает true, если указанное событие event не должно передаваться указанному дочернему элементу item, и false в противном случае.
См. также setFiltersChildMouseEvents().
[virtual protected] void QQuickItem::classBegin()
Переопределено из QQmlParserStatus::classBegin().
Производные классы должны вызывать базовый метод перед добавлением собственного действия для выполнения в classBegin.
[virtual protected] void QQuickItem::componentComplete()
Переопределено из QQmlParserStatus::componentComplete().
Производные классы должны вызывать базовый метод перед добавлением собственных действий для выполнения в componentComplete.
[virtual] bool QQuickItem::contains(const QPointF &point) const
Возвращает true, если этот элемент содержит point, который находится в локальных координатах; в противном случае возвращает false.
Этот метод может быть переопределён для обработки столкновений точек в элементах с настраиваемыми формами. Стандартная реализация проверяет, находится ли точка внутри прямоугольника ограничивающей области элемента.
Обратите внимание, что этот метод обычно используется для проверки, находится ли элемент под курсором мыши, и поэтому его реализация должна быть максимально лёгкой.
QCursor QQuickItem::cursor() const
Возвращает форму курсора для этого элемента.
Курсор мыши примет эту форму, когда он будет над этим элементом, если не установлен курсор переопределения. Список предопределённых объектов курсора см. в списке предопределённых объектов курсора.
Если не была установлена форма курсора, возвращается курсор с формой Qt::ArrowCursor, однако может быть показана другая форма курсора, если перекрывающий элемент имеет действительный курсор.
См. также setCursor() и unsetCursor().
[virtual protected] void QQuickItem::dragEnterEvent(QDragEnterEvent *event)
Обработчик событий может быть переопределён в подклассе для получения событий drag-enter для элемента. Информация о событии предоставляется параметром event.
События перетаскивания и сброса предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.
См. также Перетаскивание и Перетаскивание и сброс.
[virtual protected] void QQuickItem::dragLeaveEvent(QDragLeaveEvent *event)
Обработчик событий может быть переопределён в подклассе для получения событий drag-leave для элемента. Информация о событии предоставляется параметром event.
События перетаскивания и сброса предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.
См. также Перетаскивание и Перетаскивание и сброс.
[virtual protected] void QQuickItem::dragMoveEvent(QDragMoveEvent *event)
Обработчик событий может быть переопределён в подклассе для получения событий drag-move для элемента. Информация о событии предоставляется параметром event.
События перетаскивания и сброса предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.
См. также Перетаскивание и Перетаскивание и сброс.
[virtual protected] void QQuickItem::dropEvent(QDropEvent *event)
Обработчик событий может быть переопределён в подклассе для получения событий drop для элемента. Информация о событии предоставляется параметром event.
События перетаскивания и сброса предоставляются только в том случае, если для этого элемента установлен флаг ItemAcceptsDrops.
См. также Перетаскивание и Перетаскивание и сброс.
[virtual protected] bool QQuickItem::event(QEvent *ev)
Переопределено из QObject::event().
bool QQuickItem::filtersChildMouseEvents() const
Возвращает, должны ли события мыши и касания дочерних элементов этого элемента фильтроваться через этот элемент.
См. также setFiltersChildMouseEvents() и childMouseEventFilter().
Flags QQuickItem::flags() const
Возвращает флаги элемента для этого элемента.
См. также setFlags() и setFlag().
[virtual protected] void QQuickItem::focusInEvent(QFocusEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий фокуса-входа для элемента. Информация о событии предоставляется параметром event.
[virtual protected] void QQuickItem::focusOutEvent(QFocusEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий фокуса-выхода для элемента. Информация о событии предоставляется параметром event.
void QQuickItem::forceActiveFocus()
Принудительно активирует фокус на элементе.
Этот метод устанавливает фокус на элементе и гарантирует, что все родительские объекты FocusScope в иерархии объектов также получают фокус.
Причина изменения фокуса будет Qt::OtherFocusReason. Используйте перегруженный метод для указания причины фокусировки, чтобы обеспечить лучшее управление изменением фокуса.
См. также activeFocus.
void QQuickItem::forceActiveFocus(Qt::FocusReason reason)
Это перегруженный метод.
Принудительно устанавливает активный фокус на элемент с указанной причиной reason.
Этот метод устанавливает фокус на элемент и гарантирует, что все родительские объекты FocusScope в иерархии объектов также получат focus.
Эта функция была добавлена в Qt 5.1.
См. также activeFocus и Qt::FocusReason.
[virtual protected] void QQuickItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
Этот метод вызывается для обработки изменений геометрии элемента от oldGeometry до newGeometry. Если геометрии одинаковы, ничего не происходит.
Производные классы должны вызывать метод базового класса в своем реализации.
void QQuickItem::grabMouse()
Захватывает ввод мыши.
Этот элемент будет получать все события мыши до вызова ungrabMouse(). Обычно вызывать эту функцию не нужно, так как прием, например, события нажатия мыши гарантирует, что последующие события будут доставлены элементу. Если элемент хочет захватить события мыши от текущего получателя, ему нужно вызвать эту функцию.
Предупреждение: Эту функцию следует использовать с осторожностью.
QSharedPointer<QQuickItemGrabResult> QQuickItem::grabToImage(const QSize &targetSize = QSize())
Захватывает элемент в изображение в памяти.
Захват происходит асинхронно, и сигнал QQuickItemGrabResult::ready() излучается, когда захват завершён.
Используйте targetSize для указания размера целевого изображения. По умолчанию результат будет иметь тот же размер, что и элемент.
Если захват не может быть инициирован, функция возвращает null.
Примечание: Эта функция будет рендерить элемент на внеэкранной поверхности и копировать эту поверхность из памяти 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(ItemChange change, const ItemChangeData &value)
Вызывается при возникновении change для этого элемента.
value содержит дополнительную информацию, относящуюся к изменению, когда это применимо.
Если вы переопределяете этот метод в подклассе, обязательно вызывайте
QQuickItem::itemChange(change, value);
обычно в конце своей реализации, чтобы убедиться, что сигнал windowChanged() будет излучен.
bool QQuickItem::keepMouseGrab() const
Возвращает, должен ли ввод мыши оставаться исключительно у этого элемента.
См. также setKeepMouseGrab().
bool QQuickItem::keepTouchGrab() const
Возвращает, должны ли точки касания, захваченные этим элементом, оставаться исключительно у этого элемента.
См. также setKeepTouchGrab() и keepMouseGrab().
[virtual protected] void QQuickItem::keyPressEvent(QKeyEvent *event)
Обработчик этого события может быть переопределён в подклассе для получения событий нажатия клавиш для элемента. Информация о событии предоставляется параметром event.
[virtual protected] void QQuickItem::keyReleaseEvent(QKeyEvent *event)
Обработчик этого события может быть переопределен в подклассе для получения событий отпускания клавиш для элемента. Информация о событии предоставляется параметром event.
QPointF QQuickItem::mapFromGlobal(const QPointF &point) const
Преобразует указанную точку point в глобальной системе координат экрана в эквивалентную точку в системе координат этого элемента и возвращает преобразованную координату.
Например, это может быть полезно для добавления всплывающего окна к компоненту Qt Quick.
Примечание: Размещение окна выполняется менеджером окон, и это значение рассматривается только как подсказка. Поэтому фактическое положение окна может отличаться от ожидаемого.
Эта функция была добавлена в Qt 5.7.
См. также Концепции - Визуальные координаты в Qt Quick.
QPointF QQuickItem::mapFromItem(const QQuickItem *item, const QPointF &point) const
Преобразует заданную точку point в системе координат элемента item в эквивалентную точку в системе координат этого элемента и возвращает преобразованную координату.
Если item равен 0, это преобразует point из системы координат сцены.
См. также Концепции — Визуальные координаты в Qt Quick.
QPointF QQuickItem::mapFromScene(const QPointF &point) const
Преобразует заданную точку point в системе координат сцены в эквивалентную точку в системе координат этого элемента и возвращает преобразованную координату.
См. также Концепции — Визуальные координаты в Qt Quick.
QRectF QQuickItem::mapRectFromItem(const QQuickItem *item, const QRectF &rect) const
Преобразует заданный прямоугольник rect в системе координат элемента item в эквивалентную прямоугольную область в системе координат этого элемента и возвращает значение преобразованного прямоугольника.
Если item равен 0, это преобразует rect из системы координат сцены.
См. также Концепции — Визуальные координаты в Qt Quick.
QRectF QQuickItem::mapRectFromScene(const QRectF &rect) const
Преобразует заданный прямоугольник rect в системе координат сцены в эквивалентную прямоугольную область в системе координат этого элемента и возвращает значение преобразованного прямоугольника.
См. также Концепции — Визуальные координаты в Qt Quick.
QRectF QQuickItem::mapRectToItem(const QQuickItem *item, const QRectF &rect) const
Преобразует заданный прямоугольник rect в системе координат этого элемента в эквивалентную прямоугольную область в системе координат элемента item и возвращает значение преобразованного прямоугольника.
Если item равен 0, это преобразует rect в систему координат сцены.
См. также Концепции — Визуальные координаты в Qt Quick.
QRectF QQuickItem::mapRectToScene(const QRectF &rect) const
Преобразует заданный прямоугольник rect в системе координат этого элемента в эквивалентную прямоугольную область в системе координат сцены и возвращает значение преобразованного прямоугольника.
См. также Концепции — Визуальные координаты в Qt Quick.
QPointF QQuickItem::mapToGlobal(const QPointF &point) const
Преобразует заданную точку point в системе координат этого элемента в эквивалентную точку в глобальной системе координат экрана и возвращает преобразованную координату.
Например, это может быть полезно для добавления всплывающего окна к компоненту Qt Quick.
Примечание: Размещение окна выполняется менеджером окон, и это значение рассматривается только как подсказка. Поэтому фактическое положение окна может отличаться от ожидаемого.
Эта функция была введена в Qt 5.7.
См. также Концепции — Визуальные координаты в Qt Quick.
QPointF QQuickItem::mapToItem(const QQuickItem *item, const QPointF &point) const
Преобразует заданную точку point в системе координат этого элемента в эквивалентную точку в системе координат элемента item и возвращает преобразованную координату.
Если item равен 0, это преобразует point в систему координат сцены.
См. также Концепции — Визуальные координаты в Qt Quick.
QPointF QQuickItem::mapToScene(const QPointF &point) const
Преобразует заданную точку point в системе координат этого элемента в эквивалентную точку в системе координат сцены и возвращает преобразованную координату.
См. также Концепции — Визуальные координаты в Qt Quick.
[virtual protected] void QQuickItem::mouseDoubleClickEvent(QMouseEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий двойного щелчка мышью для элемента. Информация об событии предоставляется параметром event.
[virtual protected] void QQuickItem::mouseMoveEvent(QMouseEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий перемещения мыши для элемента. Информация об событии предоставляется параметром event.
[virtual protected] void QQuickItem::mousePressEvent(QMouseEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий нажатия мыши для элемента. Информация об событии предоставляется параметром event.
[virtual protected] void QQuickItem::mouseReleaseEvent(QMouseEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий отпускания мыши для элемента. Информация об событии предоставляется параметром event.
[virtual protected] void QQuickItem::mouseUngrabEvent()
Этот обработчик событий может быть переопределён в подклассе для уведомления о событии отпускания захвата мыши для этого элемента.
См. также ungrabMouse().
QQuickItem *QQuickItem::nextItemInFocusChain(bool forward = true)
Возвращает элемент в цепочке фокуса, следующий за этим элементом. Если forward равно true, или не указано, это следующий элемент в прямом направлении. Если forward равно false, это следующий элемент в обратном направлении.
void QQuickItem::polish()
Планирует событие полировки для этого элемента.
Когда граф сцены обработает запрос, он вызовет updatePolish() для этого элемента.
[virtual protected] void QQuickItem::releaseResources()
Эта функция вызывается, когда элемент должен освободить графические ресурсы, которые ещё не управляются узлами, возвращаемыми из QQuickItem::updatePaintNode().
Это происходит, когда элемент собирается быть удалённым из окна, в котором он ранее отображался. Элементу гарантируется наличие окна при вызове функции.
Функция вызывается в потоке GUI, а состояние потока рендеринга, если он используется, неизвестно. Объекты не должны удаляться непосредственно, а вместо этого должны быть запланированы для очистки с помощью QQuickWindow::scheduleRenderJob().
См. также Обработка графических ресурсов.
QQuickItem *QQuickItem::scopedFocusItem() const
Если этот элемент является областью фокуса, это возвращает элемент в его цепочке фокуса, который в данный момент имеет фокус.
Возвращает 0, если этот элемент не является областью фокуса.
void QQuickItem::setAcceptHoverEvents(bool enabled)
Если enabled равно true, это устанавливает элемент для обработки событий наведения; в противном случае события наведения не обрабатываются этим элементом.
См. также acceptHoverEvents().
void QQuickItem::setAcceptedMouseButtons(Qt::MouseButtons buttons)
Устанавливает кнопки мыши, принимаемые этим элементом, в buttons.
См. также acceptedMouseButtons().
void QQuickItem::setCursor(const QCursor &cursor)
Устанавливает форму указателя cursor для этого элемента.
См. также cursor() и unsetCursor().
void QQuickItem::setFiltersChildMouseEvents(bool filter)
Устанавливает, должны ли события мыши и касания дочерних элементов этого элемента фильтроваться через этот элемент.
Если filter равно true, childMouseEventFilter() будет вызываться при возникновении события мыши для дочернего элемента.
См. также filtersChildMouseEvents().
void QQuickItem::setFlag(Flag flag, bool enabled = true)
Включает указанный флаг flag для этого элемента, если enabled равно true; если enabled равно false, флаг отключается.
Эти свойства предоставляют различные подсказки для элемента; например, флаг ItemClipsChildrenToShape указывает, что все дочерние элементы этого элемента должны быть обрезаны, чтобы поместиться в область элемента.
void QQuickItem::setFlags(Flags flags)
Включает указанные flags для этого элемента.
См. также flags() и setFlag().
void QQuickItem::setKeepMouseGrab(bool keep)
Устанавливает, нужно ли сохранить ввод мыши исключительно для этого элемента.
Это полезно для элементов, которые хотят захватить и удерживать взаимодействие с мышью после предварительно определенного жеста. Например, элемент, заинтересованный в горизонтальном перемещении мыши, может установить keepMouseGrab в true после превышения порога. После того, как keepMouseGrab установлено в true, фильтрующие элементы не будут реагировать на события мыши.
Если keep ложно, фильтрующий элемент может захватить событие. Например, Flickable может попытаться захватить захват мыши, если обнаружит, что пользователь начал перемещать область просмотра.
См. также keepMouseGrab().
void QQuickItem::setKeepTouchGrab(bool keep)
Устанавливает, нужно ли сохранить точки касания, захваченные этим элементом, исключительно для этого элемента.
Это полезно для элементов, которые хотят захватить и удерживать определённые точки касания после предварительно определённого жеста. Например, элемент, заинтересованный в горизонтальном перемещении точки касания, может установить setKeepTouchGrab в true после превышения порога. После того, как setKeepTouchGrab установлено в true, фильтрующие элементы не будут реагировать на соответствующие точки касания.
Если keep ложно, фильтрующий элемент может захватить событие. Например, Flickable может попытаться захватить захват точки касания, если обнаружит, что пользователь начал перемещать область просмотра.
См. также keepTouchGrab() и setKeepMouseGrab().
void QQuickItem::stackAfter(const QQuickItem *sibling)
Перемещает указанный элемент sibling на позицию после текущего элемента в списке дочерних элементов. Порядок дочерних элементов влияет как на порядок визуального отображения, так и на порядок навигации по табуляции.
Предполагая, что значения z обоих элементов одинаковы, это приведет к тому, что sibling будет отображаться ниже текущего элемента.
Если у обоих элементов свойство activeFocusOnTab установлено в true, это также изменит порядок навигации по табуляции, и sibling получит фокус раньше текущего элемента.
Указанный sibling должен быть дочерним элементом этого элемента; то есть, они должны иметь того же непосредственного parent.
См. также Концепции - Визуальный родитель в Qt Quick.
void QQuickItem::stackBefore(const QQuickItem *sibling)
Перемещает указанный элемент sibling на позицию перед текущим элементом в списке дочерних элементов. Порядок дочерних элементов влияет как на порядок визуального отображения, так и на порядок навигации по табуляции.
Предполагая, что значения z обоих элементов одинаковы, это приведет к тому, что sibling будет отображаться выше текущего элемента.
Если у обоих элементов свойство activeFocusOnTab установлено в true, это также изменит порядок навигации по табуляции, и sibling получит фокус после текущего элемента.
Указанный sibling должен быть дочерним элементом этого элемента; то есть, они должны иметь того же непосредственного parent.
См. также Концепции - Визуальный родитель в Qt Quick.
[virtual] QSGTextureProvider *QQuickItem::textureProvider() const
Возвращает поставщик текстур для элемента. По умолчанию возвращает 0.
Эта функция может вызываться только в потоке отрисовки.
[virtual protected] void QQuickItem::touchEvent(QTouchEvent *event)
Обработчик событий может быть переопределен в подклассе для получения событий касания для элемента. Информация о событии предоставляется параметром event.
[virtual protected] void QQuickItem::touchUngrabEvent()
Обработчик событий может быть переопределен в подклассе для уведомления о событии отмены захвата касания на этом элементе.
void QQuickItem::ungrabMouse()
Освобождает захват мыши после вызова grabMouse().
Обратите внимание, что эта функция должна вызываться только тогда, когда элемент хочет прекратить обработку дальнейших событий. Нет необходимости вызывать эту функцию после события выпуска или отмены, поскольку в любом случае дальнейшие события не будут получены. После вызова этой функции больше не будут передаваться события перемещения или выпуска.
void QQuickItem::ungrabTouchPoints()
Освобождает захват точек касания, принадлежащих этому элементу.
Примечание: вряд ли есть причина вызывать эту функцию. Она должна вызываться только тогда, когда элемент не хочет получать дальнейшие события, поэтому после вызова этой функции больше не будут передаваться события перемещения или выпуска.
См. также grabTouchPoints().
void QQuickItem::unsetCursor()
Очищает форму курсора для этого элемента.
См. также cursor() и setCursor().
[slot] void QQuickItem::update()
Планирует вызов updatePaintNode() для этого элемента.
Вызов QQuickItem::updatePaintNode() всегда происходит, если элемент отображается в QQuickWindow.
Вызывать QQuickItem::update() разрешено только для элементов, которые задают флаг QQuickItem::ItemHasContents.
[protected] void QQuickItem::updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)
Уведомляет метод ввода о новых значениях запросов, если необходимо. queries указывает изменённые атрибуты.
[virtual protected] QSGNode *QQuickItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData)
Вызывается в потоке отрисовки, когда нужно синхронизировать состояние элемента с графическим деревом.
Функция вызывается в результате QQuickItem::update(), если пользователь установил флаг QQuickItem::ItemHasContents для элемента.
Функция должна возвращать корень поддерева графического дерева для этого элемента. Большинство реализаций вернут один QSGGeometryNode, содержащий визуальное представление этого элемента. oldNode — узел, который был возвращён в прошлый раз при вызове функции. updatePaintNodeData предоставляет указатель на 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)
Этот сигнал излучается, когда окно элемента window меняется.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qquickitem.html