QQuickItem Class

Die Klasse QQuickItem stellt das grundlegendste aller visuellen Elemente in Qt Quick. Mehr...

Kopfzeile: #include <QQuickItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
In QML: Item
Vererbt: QObject und QQmlParserStatus
Geerbt von:

QQuickFramebufferObject, QQuickPaintedItem, und QQuickRhiItem

Öffentliche Typen

union ItemChangeData
enum Flag { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops, …, ItemObservesViewport }
flags Flags
enum ItemChange { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ItemParentHasChanged, …, ItemEnabledHasChanged }
enum TransformOrigin { TopLeft, Top, TopRight, Left, Center, …, BottomRight }

Eigenschaften

Öffentliche Funktionen

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
QBindable<qreal> bindableHeight()
QBindable<qreal> bindableWidth()
QBindable<qreal> bindableX()
QBindable<qreal> bindableY()
virtual QRectF boundingRect() const
QQuickItem *childAt(qreal x, qreal y) const
QList<QQuickItem *> childItems() const
QRectF childrenRect()
bool clip() const
virtual QRectF clipRect() const
QObject *containmentMask() const
virtual bool contains(const QPointF &point) const
QCursor cursor() const
(since 6.3) void dumpItemTree() const
(since 6.3) void ensurePolished()
bool filtersChildMouseEvents() const
QQuickItem::Flags flags() const
Qt::FocusPolicy focusPolicy() const
void forceActiveFocus()
void forceActiveFocus(Qt::FocusReason reason)
QSharedPointer<QQuickItemGrabResult> grabToImage(const QSize &targetSize = QSize())
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 setFocusPolicy(Qt::FocusPolicy policy)
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 unsetCursor()
QQuickItem *viewportItem() const
qreal width() const
QQuickWindow *window() const
qreal x() const
qreal y() const
qreal z() const

Öffentliche Slots

void update()

Signale

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

Geschützte Funktionen

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

Reimplementierte geschützte Funktionen

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

Detaillierte Beschreibung

Alle visuellen Elemente in Qt Quick erben von QQuickItem. Obwohl eine QQuickItem-Instanz kein visuelles Erscheinungsbild hat, definiert sie alle Attribute, die für visuelle Elemente üblich sind, wie z.B. x- und y-Position, Breite und Höhe, Verankerung und Unterstützung der Tastenbedienung.

Sie können eine Unterklasse von QQuickItem erstellen, um Ihr eigenes benutzerdefiniertes visuelles Element zu erstellen, das diese Eigenschaften erbt.

Benutzerdefinierte Scene Graph Items

Alle visuellen QML-Elemente werden mit dem Scene Graph gerendert, dessen Standardimplementierung ein Low-Level-Hochleistungs-Rendering-Stack ist, der eng mit beschleunigten Grafik-APIs wie OpenGL, Vulkan, Metal oder Direct 3D verbunden ist. Es ist möglich, dass Unterklassen von QQuickItem ihre eigenen benutzerdefinierten Inhalte in den Szenegraphen einfügen, indem sie das QQuickItem::ItemHasContents Flag setzen und die Funktion QQuickItem::updatePaintNode() neu implementieren.

Warnung: Es ist wichtig, dass Grafikoperationen und die Interaktion mit dem Szenengraphen ausschließlich auf dem Rendering-Thread stattfinden, vor allem während des updatePaintNode()-Aufrufs. Die beste Faustregel ist, nur Klassen mit dem Präfix "QSG" innerhalb der Funktion QQuickItem::updatePaintNode() zu verwenden.

Hinweis: Alle Klassen mit QSG-Präfix sollten ausschließlich im Rendering-Thread des Szenegraphen verwendet werden. Siehe Scene Graph und Rendering für weitere Informationen.

Handhabung von Grafikressourcen

Der bevorzugte Weg, die Bereinigung von Grafikressourcen, die im Szenengraphen verwendet werden, zu handhaben, ist, sich auf die automatische Bereinigung von Knoten zu verlassen. Ein QSGNode, das von QQuickItem::updatePaintNode() zurückgegeben wird, wird automatisch auf dem richtigen Thread zur richtigen Zeit gelöscht. Bäume von QSGNode Instanzen werden durch die Verwendung von QSGNode::OwnedByParent verwaltet, das standardmäßig eingestellt ist. Für die meisten benutzerdefinierten Szenengraph-Elemente ist also keine zusätzliche Arbeit erforderlich.

Implementierungen, die Grafikressourcen außerhalb des Knotenbaums speichern, wie z. B. ein Element, das QQuickItem::textureProvider() implementiert, müssen darauf achten, dass es korrekt aufgeräumt wird, je nachdem, wie das Element in QML verwendet wird. Die zu behandelnden Situationen sind:

  • Der Szenegraph wird ungültig; dies kann je nach Plattform und QQuickWindow -Konfiguration geschehen, wenn das Fenster mit QQuickWindow::hide() ausgeblendet wird oder wenn es geschlossen wird. Wenn die Elementklasse eine slot mit dem Namen invalidateSceneGraph() implementiert, wird dieser Slot auf dem Rendering-Thread aufgerufen, während der GUI-Thread blockiert ist. Dies ist gleichbedeutend mit einer Verbindung zu QQuickWindow::sceneGraphInvalidated(). Beim Rendering über OpenGL wird der OpenGL-Kontext des Fensters dieses Elements gebunden, wenn dieser Slot aufgerufen wird. Die einzige Ausnahme ist, wenn das native OpenGL außerhalb der Kontrolle von Qt zerstört wurde, zum Beispiel durch EGL_CONTEXT_LOST.
  • Das Element wird aus der Szene entfernt; Wenn ein Element aus der Szene entfernt wird, z.B. weil sein Parent auf null oder ein Element in einem anderen Fenster gesetzt wurde, wird QQuickItem::releaseResources() auf dem GUI Thread aufgerufen. QQuickWindow::scheduleRenderJob() sollte verwendet werden, um die Bereinigung der Rendering-Ressourcen zu planen.
  • Das Element wird gelöscht: Wenn der Destruktor eines Elements ausgeführt wird, sollte er alle Grafikressourcen löschen, die es besitzt. Wenn keine der beiden obigen Bedingungen erfüllt ist, ist das Element Teil eines Fensters und es ist möglich, QQuickWindow::scheduleRenderJob() zu verwenden, um es zu löschen. Wenn eine Implementierung den Aufruf von QQuickItem::releaseResources() ignoriert, hat das Element in vielen Fällen keinen Zugriff mehr auf QQuickWindow und somit keine Möglichkeit, die Bereinigung zu planen.

Wenn die Bereinigung von Grafikressourcen mit QQuickWindow::scheduleRenderJob() geplant wird, sollte entweder QQuickWindow::BeforeSynchronizingStage oder QQuickWindow::AfterSynchronizingStage verwendet werden. In der Synchronisierungsphase wird der Szenegraph infolge von Änderungen am QML-Baum geändert. Wenn die Bereinigung zu einem anderen Zeitpunkt geplant wird, kann dies dazu führen, dass andere Teile des Szenegraphen auf die neu gelöschten Objekte verweisen, da diese Teile nicht aktualisiert wurden.

Hinweis: Von der Verwendung von QObject::deleteLater() zum Aufräumen von Grafikressourcen wird dringend abgeraten, da dadurch die Operation delete zu einem beliebigen Zeitpunkt ausgeführt wird und nicht bekannt ist, ob ein OpenGL-Kontext gebunden ist, wenn das Löschen stattfindet.

Benutzerdefinierte QPainter-Elemente

Das QQuickItem bietet eine Unterklasse, QQuickPaintedItem, die es dem Benutzer ermöglicht, Inhalte mit QPainter zu rendern.

Achtung! Bei der Verwendung von QQuickPaintedItem wird eine indirekte 2D-Oberfläche zum Rendern des Inhalts verwendet, wobei Software-Rasterung zum Einsatz kommt. Zuerst wird die Oberfläche gerastert, dann wird die Oberfläche gezeichnet. Die direkte Verwendung der Szenengraphen-API ist immer deutlich schneller.

Verhaltensanimationen

Wenn Ihr Element den Typ Behavior verwendet, um Animationen für Eigenschaftsänderungen zu definieren, sollten Sie immer entweder QObject::setProperty(), QQmlProperty() oder QMetaProperty::write() verwenden, wenn Sie diese Eigenschaften von C++ aus ändern müssen. Dadurch wird sichergestellt, dass die QML-Engine von der Eigenschaftsänderung weiß. Andernfalls wird die Engine nicht in der Lage sein, die von Ihnen gewünschte Animation auszuführen. Beachten Sie, dass diese Funktionen eine leichte Leistungseinbuße mit sich bringen. Weitere Einzelheiten finden Sie unter Zugriff auf Mitglieder eines QML-Objekttyps von C++ aus.

Siehe auch QQuickWindow und QQuickPaintedItem.

Dokumentation der Mitgliedstypen

enum QQuickItem::Flag
flags QQuickItem::Flags

Dieser Enum-Typ wird verwendet, um verschiedene Elementeigenschaften anzugeben.

KonstanteWertBeschreibung
QQuickItem::ItemClipsChildrenToShape0x01Zeigt an, dass dieses Element seine Kinder visuell abschneiden soll, so dass sie nur innerhalb der Grenzen dieses Elements gerendert werden.
QQuickItem::ItemAcceptsInputMethod0x02Zeigt an, dass das Element Texteingabemethoden unterstützt.
QQuickItem::ItemIsFocusScope0x04Zeigt an, dass das Element ein Fokusbereich ist. Weitere Informationen finden Sie unter Tastaturfokus in Qt Quick.
QQuickItem::ItemHasContents0x08Zeigt an, dass das Element visuellen Inhalt hat und vom Szenengraph gerendert werden sollte.
QQuickItem::ItemAcceptsDrops0x10Zeigt an, dass das Element Drag&Drop-Ereignisse akzeptiert.
QQuickItem::ItemIsViewport0x20Zeigt an, dass das Element ein Ansichtsfenster für seine Kinder definiert.
QQuickItem::ItemObservesViewport0x40Zeigt an, dass das Element die Grenzen des Ansichtsfensters kennen möchte, wenn ein Vorgänger das ItemIsViewport-Flag gesetzt hat.

Der Typ Flags ist ein Typedef für QFlags<Flag>. Er speichert eine ODER-Kombination von Flag-Werten.

Siehe auch setFlag(), setFlags(), und flags().

enum QQuickItem::ItemChange

Wird in Verbindung mit QQuickItem::itemChange() verwendet, um das Element über bestimmte Arten von Änderungen zu informieren.

KonstanteWertBeschreibung
QQuickItem::ItemChildAddedChange0Ein Kind wurde hinzugefügt. ItemChangeData::item enthält das hinzugefügte Kind.
QQuickItem::ItemChildRemovedChange1Ein Kind wurde entfernt. ItemChangeData::item enthält das entfernte Kind.
QQuickItem::ItemSceneChange2Das Element wurde einer Szene hinzugefügt oder aus ihr entfernt. Die QQuickWindow, die die Szene wiedergibt, wird unter ItemChangeData::window angegeben. Der Window-Parameter ist null, wenn das Element aus einer Szene entfernt wird.
QQuickItem::ItemVisibleHasChanged3Die Sichtbarkeit des Objekts hat sich geändert. ItemChangeData::boolValue enthält die neue Sichtbarkeit.
QQuickItem::ItemParentHasChanged4Das Elternteil des Elements hat sich geändert. ItemChangeData::item enthält das neue Elternteil.
QQuickItem::ItemOpacityHasChanged5Die Deckkraft des Objekts hat sich geändert. ItemChangeData::realValue enthält die neue Deckkraft.
QQuickItem::ItemActiveFocusHasChanged6Der Fokus des Elements hat sich geändert. ItemChangeData::boolValue enthält, ob das Element den Fokus hat oder nicht.
QQuickItem::ItemRotationHasChanged7Die Drehung des Elements hat sich geändert. ItemChangeData::realValue enthält die neue Drehung.
QQuickItem::ItemDevicePixelRatioHasChanged9Das Gerätepixelverhältnis des Bildschirms, auf dem sich das Element befindet, hat sich geändert. ItemChangedData::realValue enthält das neue Gerätepixelverhältnis.
QQuickItem::ItemAntialiasingHasChanged8Das Antialiasing hat sich geändert. Der aktuelle (boolesche) Wert ist in QQuickItem::antialiasing zu finden.
QQuickItem::ItemEnabledHasChanged10Der Aktivierungsstatus des Elements hat sich geändert. ItemChangeData::boolValue enthält den neuen Aktivierungsstatus. (seit Qt 5.10)

enum QQuickItem::TransformOrigin

Steuert den Punkt, um den einfache Transformationen wie Skalierung angewendet werden.

KonstanteWertBeschreibung
QQuickItem::TopLeft0Die linke obere Ecke des Objekts.
QQuickItem::Top1Der Mittelpunkt des oberen Teils des Objekts.
QQuickItem::TopRight2Die rechte obere Ecke des Objekts.
QQuickItem::Left3Der äußerste linke Punkt der vertikalen Mitte.
QQuickItem::Center4Die Mitte des Artikels.
QQuickItem::Right5Der äußerste rechte Punkt der vertikalen Mitte.
QQuickItem::BottomLeft6Die untere linke Ecke des Artikels.
QQuickItem::Bottom7Der mittlere Punkt der Unterseite des Artikels.
QQuickItem::BottomRight8Die rechte untere Ecke des Artikels.

Siehe auch transformOrigin() und setTransformOrigin().

Eigenschaft Dokumentation

implicitHeight : qreal

implicitWidth : qreal

Legt die bevorzugte Breite oder Höhe des Elements fest.

Wenn width oder height nicht angegeben ist, wird die effektive Größe eines Elements durch seine implicitWidth oder implicitHeight bestimmt.

Ist ein Objekt jedoch das untergeordnete Element eines Layouts, bestimmt das Layout die bevorzugte Größe des Objekts anhand seiner impliziten Größe. In einem solchen Szenario wird die explizite width oder height ignoriert.

Die implizite Standardgröße für die meisten Objekte ist 0x0, einige Objekte haben jedoch eine inhärente implizite Größe, die nicht überschrieben werden kann, z. B. Image und Text.

Das Festlegen der impliziten Größe ist nützlich, um Komponenten zu definieren, die z. B. aufgrund ihres Inhalts eine bevorzugte Größe haben:

// 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
    }
}

Hinweis: Die Verwendung von implicitWidth von Text oder TextEdit und die explizite Einstellung der Breite führt zu einer Leistungseinbuße, da der Text zweimal ausgelegt werden muss.

[read-only] activeFocus : const bool

Diese schreibgeschützte Eigenschaft gibt an, ob das Element den aktiven Fokus hat.

Wenn activeFocus true ist, ist dieses Element entweder dasjenige, das derzeit Tastatureingaben erhält, oder es ist ein FocusScope Vorfahre des Elements, das derzeit Tastatureingaben erhält.

Normalerweise wird activeFocus durch das Setzen von focus auf ein Element und seine umschließenden FocusScope Objekte gewonnen. Im folgenden Beispiel haben die Objekte input und focusScope den aktiven Fokus, während das Wurzel-Rechteck-Objekt nicht aktiv ist.

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        focus: true

        TextInput {
            id: input
            focus: true
        }
    }
}

Zugriffsfunktionen:

bool hasActiveFocus() const

Benachrichtigungssignal:

void activeFocusChanged(bool)

Siehe auch focus und Tastaturfokus in Qt Quick.

activeFocusOnTab : bool

Diese Eigenschaft legt fest, ob das Element in der Fokuskette der Registerkarte enthalten sein soll. Standardmäßig ist diese Eigenschaft auf false gesetzt.

Hinweis: {QStyleHints::tabFocusBehavior}{tabFocusBehavior} kann den Fokus weiter auf bestimmte Arten von Steuerelementen beschränken, z. B. nur auf Text- oder Listensteuerelemente. Dies ist unter macOS der Fall, wo der Fokus auf bestimmte Steuerelemente aufgrund von Systemeinstellungen eingeschränkt sein kann.

Zugriffsfunktionen:

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

Benachrichtigungssignal:

void activeFocusOnTabChanged(bool)

Siehe auch QStyleHints::tabFocusBehavior und focusPolicy.

antialiasing : bool

Gibt an, ob das Element antialiasing ist oder nicht

Wird von visuellen Elementen verwendet, um zu entscheiden, ob das Element Antialiasing verwenden soll oder nicht. In einigen Fällen benötigen Elemente mit Antialiasing mehr Speicher und sind möglicherweise langsamer zu rendern (siehe Antialiasing für weitere Details).

Der Standardwert ist false, kann aber von abgeleiteten Elementen überschrieben werden.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void antialiasingChanged(bool)

baselineOffset : qreal

Gibt die Position der Grundlinie des Eintrags in lokalen Koordinaten an.

Die Grundlinie eines Text Elements ist die imaginäre Linie, auf der der Text sitzt. Steuerelemente, die Text enthalten, setzen ihre Grundlinie normalerweise auf die Grundlinie ihres Textes.

Für Nicht-Text-Elemente wird standardmäßig ein Grundlinienversatz von 0 verwendet.

Zugriffsfunktionen:

qreal baselineOffset() const
void setBaselineOffset(qreal)

Melder-Signal:

void baselineOffsetChanged(qreal)

[read-only] childrenRect : const QRectF

Diese Eigenschaft enthält die kollektive Position und Größe der Kindelemente des Elements.

Diese Eigenschaft ist nützlich, wenn Sie auf die kollektive Geometrie der Kinder eines Elements zugreifen müssen, um die korrekte Größe des Elements zu bestimmen.

Die zurückgegebene Geometrie ist für das Element lokal. Ein Beispiel:

Item {
    x: 50
    y: 100

    // prints: QRectF(-10, -20, 30, 40)
    Component.onCompleted: print(childrenRect)

    Item {
        x: -10
        y: -20
        width: 30
        height: 40
    }
}

Zugriffsfunktionen:

QRectF childrenRect()

Benachrichtigungssignal:

void childrenRectChanged(const QRectF &)

clip : bool

Diese Eigenschaft gibt an, ob die Beschneidung aktiviert ist. Der Standardwert für Clipping ist false.

Wenn die Beschneidung aktiviert ist, wird ein Element sein eigenes Bild sowie die Bilder seiner Kinder auf sein begrenzendes Rechteck beschränken. Wenn Sie die Beschneidung während des Malvorgangs eines Elements einstellen, müssen Sie sie wieder zurücksetzen, um zu verhindern, dass der Rest der Szene beschnitten wird.

Hinweis: Clipping kann die Rendering-Leistung beeinträchtigen. Siehe Clipping für weitere Informationen.

Hinweis: Aus QML-Gründen wird beim Setzen von clip auf true auch das Flag ItemIsViewport gesetzt, was manchmal als Optimierung wirkt: Untergeordnete Elemente, die das Flag ItemObservesViewport haben, können auf die Erstellung von Szenegraph-Knoten verzichten, die außerhalb des Ansichtsfensters liegen. Das ItemIsViewport Flag kann aber auch unabhängig davon gesetzt werden.

Zugriffsfunktionen:

bool clip() const
void setClip(bool)

Benachrichtigungssignal:

void clipChanged(bool)

containmentMask : QObject*

Diese Eigenschaft enthält eine optionale Maske, die in der Methode contains() verwendet wird, die hauptsächlich für die Trefferprüfung der einzelnen QPointerEvent verwendet wird.

Standardmäßig gibt contains() true für jeden Punkt innerhalb des Begrenzungsrahmens des Elements zurück. Aber jede QQuickItem oder jede QObject, die eine Funktion der folgenden Form implementiert

Q_INVOKABLE bool contains(const QPointF &point) const;

implementiert, kann als Maske verwendet werden, um die Trefferprüfung auf dieses Objekt zu verschieben.

Hinweis: contains() wird häufig während der Ereignisauslieferung aufgerufen. Die Verschiebung der Trefferprüfung auf ein anderes Objekt verlangsamt diese etwas. containmentMask() kann Leistungsprobleme verursachen, wenn die Methode contains() dieses Objekts nicht effizient ist. Wenn Sie eine eigene QQuickItem Unterklasse implementieren, können Sie alternativ contains() überschreiben.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void containmentMaskChanged()

Siehe auch contains().

enabled : bool

Diese Eigenschaft gibt an, ob das Element Maus- und Tastaturereignisse empfängt. Standardmäßig ist dies true.

Die Einstellung dieser Eigenschaft wirkt sich direkt auf den Wert enabled der untergeordneten Elemente aus. Wenn sie auf false gesetzt ist, werden die enabled -Werte aller untergeordneten Elemente ebenfalls zu false. Wenn diese Eigenschaft auf true gesetzt wird, werden die enabled Werte der untergeordneten Elemente auf true zurückgesetzt, sofern sie nicht explizit auf false gesetzt wurden.

Wenn Sie diese Eigenschaft auf false setzen, wird activeFocus automatisch auf false gesetzt, und dieses Element erhält keine Tastaturereignisse mehr.

Hinweis: Hover-Ereignisse werden separat durch setAcceptHoverEvents() aktiviert. Daher kann ein deaktiviertes Element weiterhin Hover-Ereignisse empfangen, auch wenn diese Eigenschaft auf false gesetzt ist. Dadurch ist es möglich, informatives Feedback (z. B. ToolTip) anzuzeigen, auch wenn ein interaktives Element deaktiviert ist. Das Gleiche gilt auch für alle HoverHandlers, die als Kinder des Elements hinzugefügt wurden. Ein HoverHandler kann aber auch explizit disabled sein oder z.B. an den enabled Zustand des Eintrags gebunden sein.

Zugriffsfunktionen:

bool isEnabled() const
void setEnabled(bool)

Benachrichtigungssignal:

void enabledChanged()

Siehe auch visible.

focus : bool

Diese Eigenschaft gibt an, ob das Element den Fokus innerhalb des umschließenden FocusScope hat. Wenn dies der Fall ist, erhält dieses Element den aktiven Fokus, wenn das umschließende Element FocusScope den aktiven Fokus erhält.

Im folgenden Beispiel erhält input den aktiven Fokus, wenn scope den aktiven Fokus erhält:

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        id: scope

        TextInput {
            id: input
            focus: true
        }
    }
}

Für die Zwecke dieser Eigenschaft wird davon ausgegangen, dass sich die Szene als Ganzes wie ein Fokusbereich verhält. In der Praxis bedeutet das, dass die folgende QML den aktiven Fokus beim Start an input vergibt.

Rectangle {
    width: 100; height: 100

    TextInput {
          id: input
          focus: true
    }
}

Zugriffsfunktionen:

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

Notifier-Signal:

void focusChanged(bool)

Siehe auch activeFocus und Tastaturfokus in Qt Quick.

[since 6.7] focusPolicy : Qt::FocusPolicy

Diese Eigenschaft bestimmt die Art und Weise, wie das Element den Fokus annimmt.

Diese Eigenschaft wurde in Qt 6.7 eingeführt.

Zugriffsfunktionen:

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

Benachrichtigungssignal:

void focusPolicyChanged(Qt::FocusPolicy)

[bindable] height : qreal

Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.

Diese Eigenschaft enthält die Höhe dieses Elements.

opacity : qreal

Diese Eigenschaft enthält die Deckkraft des Objekts. Die Deckkraft wird als Zahl zwischen 0,0 (völlig transparent) und 1,0 (völlig undurchsichtig) angegeben. Der Standardwert ist 1.0.

Wenn diese Eigenschaft festgelegt ist, wird die angegebene Deckkraft auch individuell auf untergeordnete Elemente angewendet. Dies kann unter Umständen einen unbeabsichtigten Effekt haben. In der zweiten Gruppe von Rechtecken unten wurde beispielsweise für das rote Rechteck eine Deckkraft von 0,5 festgelegt, die sich auf die Deckkraft des blauen untergeordneten Rechtecks auswirkt, obwohl das untergeordnete Rechteck keine Deckkraft festgelegt hat.

Werte, die außerhalb des Bereichs von 0 bis 1 liegen, werden geklammert.

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
        }
    }
}

Das Ändern der Deckkraft eines Elements hat keinen Einfluss darauf, ob das Element Benutzereingabeereignisse empfängt. (Im Gegensatz dazu stoppt das Setzen der Eigenschaft visible auf false Mausereignisse und das Setzen der Eigenschaft enabled auf false Maus- und Tastaturereignisse und entfernt außerdem den aktiven Fokus vom Element).

Zugriffsfunktionen:

qreal opacity() const
void setOpacity(qreal)

Benachrichtigungssignal:

void opacityChanged()

Siehe auch visible.

parent : QQuickItem*

Diese Eigenschaft enthält das visuelle übergeordnete Element des Artikels.

Hinweis: Das Konzept des visuellen übergeordneten Elements unterscheidet sich von dem des QObject übergeordneten Elements. Der visuelle Elternteil eines Elements muss nicht unbedingt mit seinem Objekt-Elternteil übereinstimmen. Siehe Konzepte - Visual Parent in Qt Quick für weitere Details.

Hinweis: Das Benachrichtigungssignal für diese Eigenschaft wird bei der Zerstörung des visuellen Parents ausgegeben. C++-Signalhandler können nicht davon ausgehen, dass Elemente in der visuellen Elternhierarchie noch vollständig aufgebaut sind. Verwenden Sie qobject_cast, um zu überprüfen, ob Elemente in der übergeordneten Hierarchie sicher als der erwartete Typ verwendet werden können.

Zugriffsfunktionen:

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

Melder-Signal:

void parentChanged(QQuickItem *)

rotation : qreal

Diese Eigenschaft gibt die Drehung des Objekts in Grad im Uhrzeigersinn um seine transformOrigin an.

Der Standardwert ist 0 Grad (d. h. keine Drehung).

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

Zugriffsfunktionen:

qreal rotation() const
void setRotation(qreal)

Benachrichtigungssignal:

void rotationChanged()

Siehe auch Transform und Rotation.

scale : qreal

Diese Eigenschaft enthält den Skalierungsfaktor für dieses Element.

Ein Maßstab von weniger als 1,0 bewirkt, dass das Element kleiner dargestellt wird, und ein Maßstab von mehr als 1,0, dass das Element größer dargestellt wird. Ein negativer Maßstab bewirkt, dass das Objekt gespiegelt wiedergegeben wird.

Der Standardwert ist 1,0.

Die Skalierung wird von der Seite transformOrigin übernommen.

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
    }
}

Zugriffsfunktionen:

qreal scale() const
void setScale(qreal)

Benachrichtigungssignal:

void scaleChanged()

Siehe auch Transform und Scale.

smooth : bool

Gibt an, ob das Element geglättet ist oder nicht

Wird in erster Linie bei bildbasierten Elementen verwendet, um zu entscheiden, ob das Element eine glatte Abtastung verwenden soll oder nicht. Eine glatte Abtastung wird mit linearer Interpolation durchgeführt, während eine nicht-glatte Abtastung mit dem nächsten Nachbarn durchgeführt wird.

In Qt Quick 2.0 hat diese Eigenschaft minimale Auswirkungen auf die Leistung.

Standardmäßig ist diese Eigenschaft auf true eingestellt.

Zugriffsfunktionen:

bool smooth() const
void setSmooth(bool)

Benachrichtigungssignal:

void smoothChanged(bool)

state : QString

Diese Eigenschaft enthält den Namen des aktuellen Zustands des Elements.

Befindet sich das Element in seinem Standardzustand, d. h. es wurde kein expliziter Zustand festgelegt, enthält diese Eigenschaft eine leere Zeichenfolge. Ebenso können Sie ein Element in seinen Standardzustand zurückversetzen, indem Sie diese Eigenschaft auf eine leere Zeichenfolge setzen.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void stateChanged(const QString &)

Siehe auch Qt Quick Zustände.

transformOrigin : TransformOrigin

Diese Eigenschaft enthält den Ursprungspunkt, um den Skalierung und Drehung transformiert werden.

Es stehen neun Transformationsursprünge zur Verfügung, wie in der folgenden Abbildung dargestellt. Der Standard-Ursprung der Transformation ist Item.Center.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void transformOriginChanged(QQuickItem::TransformOrigin)

visible : bool

Diese Eigenschaft gibt an, ob das Element sichtbar ist. Standardmäßig ist dies true.

Die Einstellung dieser Eigenschaft wirkt sich direkt auf den Wert visible der untergeordneten Elemente aus. Wenn sie auf false gesetzt wird, werden die visible -Werte aller untergeordneten Elemente ebenfalls zu false. Wenn sie auf true gesetzt wird, werden die visible Werte der untergeordneten Elemente auf true zurückgesetzt, es sei denn, sie wurden explizit auf false gesetzt.

(Aufgrund dieses Weiterflussverhaltens hat die Verwendung der Eigenschaft visible möglicherweise nicht die beabsichtigte Wirkung, wenn eine Eigenschaftsbindung nur auf explizite Eigenschaftsänderungen reagieren soll. In solchen Fällen kann es besser sein, stattdessen die Eigenschaft opacity zu verwenden.)

Wenn diese Eigenschaft auf false gesetzt wird, empfängt das Element keine Mausereignisse mehr, aber es empfängt weiterhin Tastenereignisse und behält die Tastatur focus bei, falls sie gesetzt wurde. (Im Gegensatz dazu werden bei der Einstellung der Eigenschaft enabled auf false sowohl Maus- als auch Tastaturereignisse gestoppt und der Fokus des Elements wird entfernt).

Hinweis: Der Wert dieser Eigenschaft wird nur durch Änderungen dieser Eigenschaft oder der übergeordneten Eigenschaft visible beeinflusst. Sie ändert sich zum Beispiel nicht, wenn das Element aus dem Bildschirm verschoben wird oder wenn opacity auf 0 gesetzt wird. Aus historischen Gründen ist diese Eigenschaft jedoch nach der Erstellung des Elements wahr, auch wenn das Element noch nicht zu einer Szene hinzugefügt wurde. Das Ändern oder Auslesen dieser Eigenschaft eines Objekts, das noch nicht zu einer Szene hinzugefügt wurde, führt möglicherweise nicht zu den erwarteten Ergebnissen.

Hinweis: Das Benachrichtigungssignal für diese Eigenschaft wird bei der Zerstörung des visuellen Elternteils ausgesendet. C++-Signalhandler können nicht davon ausgehen, dass Elemente in der visuellen Elternhierarchie noch vollständig aufgebaut sind. Verwenden Sie qobject_cast, um zu überprüfen, ob Elemente in der übergeordneten Hierarchie sicher als der erwartete Typ verwendet werden können.

Zugriffsfunktionen:

bool isVisible() const
void setVisible(bool)

Notifier-Signal:

void visibleChanged()

Siehe auch opacity und enabled.

[bindable] width : qreal

Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.

Diese Eigenschaft enthält die Breite dieses Elements.

[bindable] x : qreal

Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.

Definiert die x-Position des Elements relativ zu seinem übergeordneten Element.

[bindable] y : qreal

Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.

Definiert die y-Position des Elements relativ zu seinem übergeordneten Element.

z : qreal

Legt die Stapelreihenfolge von geschwisterlichen Elementen fest. Standardmäßig ist die Stapelreihenfolge 0.

Elemente mit einem höheren Stapelungswert werden über Geschwister mit einer niedrigeren Stapelungsreihenfolge gezeichnet. Elemente mit demselben Stapelwert werden in der Reihenfolge ihres Erscheinens von unten nach oben gezeichnet. Elemente mit einem negativen Stapelungswert werden unter dem Inhalt ihrer Eltern gezeichnet.

Das folgende Beispiel zeigt die verschiedenen Auswirkungen der Stapelreihenfolge.

Gleiche z - spätere Kinder über früheren Kindern:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Höhere z oben:
Item {
    Rectangle {
        z: 1
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Gleiche z - Kinder über Eltern:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Niedriger z unten:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            z: -1
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Zugriffsfunktionen:

qreal z() const
void setZ(qreal)

Benachrichtigungssignal:

void zChanged()

Member Function Dokumentation

[explicit] QQuickItem::QQuickItem(QQuickItem *parent = nullptr)

Konstruiert ein QQuickItem mit dem angegebenen parent.

parent wird sowohl als visual parent als auch als QObject Elternteil verwendet.

[override virtual noexcept] QQuickItem::~QQuickItem()

Zerstört die QQuickItem.

bool QQuickItem::acceptHoverEvents() const

Gibt zurück, ob Hover-Ereignisse von diesem Element akzeptiert werden.

Der Standardwert ist false.

Wenn dieser Wert false ist, empfängt das Element keine Hover-Ereignisse über die Funktionen hoverEnterEvent(), hoverMoveEvent() und hoverLeaveEvent().

Siehe auch setAcceptHoverEvents().

bool QQuickItem::acceptTouchEvents() const

Gibt zurück, ob Berührungsereignisse von diesem Element akzeptiert werden.

Der Standardwert ist false.

Wenn dieser Wert false ist, empfängt das Element keine Berührungsereignisse über die Funktion touchEvent().

Siehe auch setAcceptTouchEvents().

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

Gibt die von diesem Element akzeptierten Maustasten zurück.

Der Standardwert ist Qt::NoButton; das heißt, es werden keine Maustasten akzeptiert.

Wenn ein Element die Maustaste für ein bestimmtes Mausereignis nicht akzeptiert, wird das Mausereignis nicht an das Element geliefert, sondern an das nächste Element in der Elementhierarchie.

Siehe auch setAcceptedMouseButtons() und acceptTouchEvents().

[virtual] QRectF QQuickItem::boundingRect() const

Gibt die Ausdehnung des Elements in seinem eigenen Koordinatensystem zurück: ein Rechteck von 0, 0 bis width() und height().

[invokable] QQuickItem *QQuickItem::childAt(qreal x, qreal y) const

Gibt das erste sichtbare untergeordnete Element zurück, das am Punkt (x, y) innerhalb des Koordinatensystems dieses Elements gefunden wurde.

Gibt nullptr zurück, wenn es kein solches Element gibt.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

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

Gibt die Kinder dieses Elements zurück.

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

Reimplementieren Sie diese Methode, um die Zeigerereignisse zu filtern, die von den Kindern dieses Elements empfangen werden.

Diese Methode wird nur aufgerufen, wenn filtersChildMouseEvents() true ist.

Geben Sie true zurück, wenn das angegebene event nicht an das angegebene Kind item weitergegeben werden soll, und andernfalls false. Wenn Sie true zurückgeben, sollten Sie auch accept oder ignore die event zurückgeben, um zu signalisieren, ob die Ereignisausbreitung angehalten oder fortgesetzt werden soll. Die event wird jedoch immer an alle ChildMouseEventFilters in der übergeordneten Kette gesendet.

Hinweis: Trotz des Namens filtert diese Funktion alle QPointerEvent Instanzen bei der Übermittlung an alle Child-Ereignisse (typischerweise Maus-, Touch- und Tablet-Ereignisse). Wenn Sie diese Funktion in einer Unterklasse überschreiben, empfehlen wir, generischen Code für die Ereignisbehandlung zu schreiben, der nur die Accessoren in QPointerEvent verwendet. Alternativ können Sie event->type() und/oder event->device()->type() einschalten, um verschiedene Ereignistypen auf unterschiedliche Weise zu behandeln.

Hinweis: Das Filtern ist nur eine Möglichkeit, die Verantwortung im Falle einer gestischen Mehrdeutigkeit zu teilen (z. B. bei Drücken wissen Sie nicht, ob der Benutzer tippen oder ziehen wird). Eine andere Möglichkeit ist der Aufruf von QPointerEvent::addPassiveGrabber() beim Drücken, um den Fortschritt der QEventPoint nicht exklusiv zu überwachen. In beiden Fällen kann der Item- oder Pointer-Handler, der die Überwachung durchführt, später den exklusiven Zugriff übernehmen, wenn klar wird, dass die Geste dem erwarteten Muster entspricht.

Siehe auch setFiltersChildMouseEvents().

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

Reimplements: QQmlParserStatus::classBegin().

Abgeleitete Klassen sollten die Methode der Basisklasse aufrufen, bevor sie ihre eigene Aktion hinzufügen, die bei classBegin ausgeführt wird.

[virtual] QRectF QQuickItem::clipRect() const

Liefert den rechteckigen Bereich innerhalb dieses Elements, der derzeit in viewportItem() sichtbar ist, wenn ein Ansichtsfenster vorhanden und das Kennzeichen ItemObservesViewport gesetzt ist; andernfalls die Ausmaße dieses Elements in seinem eigenen Koordinatensystem: ein Rechteck von 0, 0 bis width() und height(). Dies ist der Bereich, der sichtbar bleiben soll, wenn clip auf true gesetzt ist. Er kann auch in updatePaintNode() verwendet werden, um die dem Szenengraph hinzugefügten Grafiken zu begrenzen.

Zum Beispiel könnte eine große Zeichnung oder ein großes Textdokument in einem Flickable angezeigt werden, das nur einen Teil des Fensters der Anwendung einnimmt: In diesem Fall ist Flickable das Ansichtsfenster-Element, und ein benutzerdefiniertes Inhaltswiedergabe-Element kann wählen, ob es Szenegrafik-Knoten auslässt, die außerhalb des aktuell sichtbaren Bereichs liegen. Wenn das ItemObservesViewport Flag gesetzt ist, ändert sich dieser Bereich jedes Mal, wenn der Benutzer den Inhalt im Flickable scrollt.

Bei verschachtelten Ansichtsfenstern ist clipRect() die Schnittmenge der boundingRectaller Vorgänger, bei denen das Flag ItemIsViewport gesetzt ist, abgebildet auf das Koordinatensystem dieses Elements.

Siehe auch boundingRect().

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

Reimplements: QQmlParserStatus::componentComplete().

Abgeleitete Klassen sollten die Methode der Basisklasse aufrufen, bevor sie ihre eigenen Aktionen hinzufügen, die bei componentComplete ausgeführt werden.

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

Gibt true zurück, wenn dieses Element point enthält, das sich in lokalen Koordinaten befindet; andernfalls wird false zurückgegeben.

Diese Funktion kann überschrieben werden, um Punktkollisionen in Elementen mit eigenen Formen zu behandeln. Die Standardimplementierung prüft, ob der Punkt innerhalb von containmentMask() liegt, wenn es gesetzt ist, oder andernfalls innerhalb der Bounding Box.

Hinweis: Diese Methode wird für den Hit-Test jedes QEventPoint während der Ereignisübermittlung verwendet, daher sollte die Implementierung so einfach wie möglich gehalten werden.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

QCursor QQuickItem::cursor() const

Gibt die Form des Cursors für dieses Element zurück.

Der Mauszeiger nimmt diese Form an, wenn er sich über diesem Element befindet, es sei denn, es wurde ein Override-Cursor festgelegt. Siehe list of predefined cursor objects für eine Reihe von nützlichen Formen.

Wenn keine Cursorform festgelegt wurde, wird ein Cursor mit der Form Qt::ArrowCursor zurückgegeben, jedoch kann eine andere Cursorform angezeigt werden, wenn ein überlappendes Element einen gültigen Cursor hat.

Siehe auch setCursor() und unsetCursor().

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drag-Entry-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Drag-and-Drop-Ereignisse werden nur bereitgestellt, wenn das Kennzeichen ItemAcceptsDrops für dieses Element gesetzt wurde.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

Siehe auch Drag und Drag and Drop.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drag-Leave-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Drag-and-Drop-Ereignisse werden nur bereitgestellt, wenn das Kennzeichen ItemAcceptsDrops für dieses Element gesetzt wurde.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

Siehe auch Drag und Drag and Drop.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drag-Move-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Drag-and-Drop-Ereignisse werden nur bereitgestellt, wenn das Kennzeichen ItemAcceptsDrops für dieses Element gesetzt wurde.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

Siehe auch Drag und Drag and Drop.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drop-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden über den Parameter event bereitgestellt.

Drag-and-Drop-Ereignisse werden nur bereitgestellt, wenn das Kennzeichen ItemAcceptsDrops für dieses Element gesetzt wurde.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

Siehe auch Drag und Drag and Drop.

[invokable, since 6.3] void QQuickItem::dumpItemTree() const

Gibt einige Details über den visuellen Baum der Elemente aus, die mit diesem Element beginnen, rekursiv.

Hinweis: QObject::dumpObjectTree() gibt einen ähnlichen Baum aus; aber, wie in Konzepte - Visuelles Elternteil in Qt Quick erklärt, unterscheidet sich QObject::parent() eines Elements manchmal von QQuickItem::parentItem(). Sie können beide Bäume ausgeben, um den Unterschied zu sehen.

Hinweis: Das genaue Ausgabeformat kann sich in zukünftigen Versionen von Qt ändern.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch Debugging-Techniken und GammaRay's Qt Quick Inspector.

[invokable, since 6.3] void QQuickItem::ensurePolished()

Ruft updatePolish() auf.

Dies kann für Elemente wie Layouts (oder Positionierer) nützlich sein, die die Berechnung ihrer implicitWidth und implicitHeight verzögern, bis sie ein PolishEvent erhalten.

Wenn z. B. ein untergeordnetes Element zu einem Layout hinzugefügt oder entfernt wird, wird die implizite Größe normalerweise nicht sofort berechnet (dies ist eine Optimierung). In einigen Fällen kann es wünschenswert sein, die implizite Größe des Layouts direkt nach dem Hinzufügen eines untergeordneten Elements abzufragen. Ist dies der Fall, verwenden Sie diese Funktion unmittelbar vor der Abfrage der impliziten Größe.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch updatePolish() und polish().

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

Reimplements: QObject::event(QEvent *e).

bool QQuickItem::filtersChildMouseEvents() const

Gibt zurück, ob Zeigerereignisse, die für die Kinder dieses Elements bestimmt sind, durch dieses Element gefiltert werden sollen.

Wenn sowohl dieses Element als auch ein untergeordnetes Element über acceptTouchEvents() true verfügen, filtert dieses Element das Berührungsereignis, wenn eine Berührungsinteraktion stattfindet. Wenn jedoch entweder dieses Element oder das untergeordnete Element keine Berührungsereignisse verarbeiten kann, wird childMouseEventFilter() mit einem synthetisierten Mausereignis aufgerufen.

Siehe auch setFiltersChildMouseEvents() und childMouseEventFilter().

QQuickItem::Flags QQuickItem::flags() const

Gibt die Artikelkennzeichen für diesen Artikel zurück.

Siehe auch setFlags() und setFlag().

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Fokus-in-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden über den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

Wenn Sie diese Funktion neu implementieren, sollten Sie die Implementierung der Basisklasse aufrufen.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Focus-Out-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden über den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

[invokable] void QQuickItem::forceActiveFocus()

Erzwingt den aktiven Fokus auf das Element.

Diese Methode setzt den Fokus auf das Element und stellt sicher, dass alle Vorgängerobjekte FocusScope in der Objekthierarchie auch focus erhalten.

Der Grund für den Fokuswechsel ist Qt::OtherFocusReason. Verwenden Sie die überladene Methode, um den Grund für den Fokuswechsel anzugeben, um eine bessere Handhabung des Fokuswechsels zu ermöglichen.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch activeFocus.

[invokable] void QQuickItem::forceActiveFocus(Qt::FocusReason reason)

Dies ist eine überladene Funktion.

Erzwingt den aktiven Fokus auf das Element mit dem angegebenen reason.

Diese Methode setzt den Fokus auf das Element und stellt sicher, dass alle Vorgängerobjekte FocusScope in der Objekthierarchie auch focus erhalten.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch activeFocus und Qt::FocusReason.

[virtual protected, since 6.0] void QQuickItem::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)

Diese Funktion wird aufgerufen, um die Änderungen der Geometrie dieses Elements von oldGeometry auf newGeometry zu behandeln. Wenn die beiden Geometrien gleich sind, wird nichts unternommen.

Abgeleitete Klassen müssen die Methode der Basisklasse innerhalb ihrer Implementierung aufrufen.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Ergreift das Element in ein speicherinternes Bild.

Der Grabvorgang erfolgt asynchron und das Signal QQuickItemGrabResult::ready() wird ausgegeben, wenn der Grabvorgang abgeschlossen ist.

Verwenden Sie targetSize, um die Größe des Zielbildes anzugeben. Standardmäßig hat das Ergebnis die gleiche Größe wie item.

Wenn der Grabvorgang nicht eingeleitet werden konnte, gibt die Funktion null zurück.

Hinweis: Diese Funktion rendert das Objekt auf eine Oberfläche außerhalb des Bildschirms und kopiert diese Oberfläche aus dem GPU-Speicher in den CPU-Speicher, was recht kostspielig sein kann. Für eine "Live"-Vorschau verwenden Sie layers oder ShaderEffectSource.

Siehe auch QQuickWindow::grabWindow().

[protected] bool QQuickItem::heightValid() const

Gibt zurück, ob die Eigenschaft Höhe explizit festgelegt wurde.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Hover-Entry-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Hover-Ereignisse werden nur bereitgestellt, wenn acceptHoverEvents() wahr ist.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Hover-Leave-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Hover-Ereignisse werden nur bereitgestellt, wenn acceptHoverEvents() wahr ist.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Hover-Move-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Hover-Ereignisse werden nur bereitgestellt, wenn acceptHoverEvents() wahr ist.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

qreal QQuickItem::implicitWidth() const

Gibt die Breite des Elements zurück, die durch andere Eigenschaften, die den Inhalt bestimmen, impliziert wird.

Hinweis: Getter-Funktion für die Eigenschaft implicitWidth.

Siehe auch setImplicitWidth().

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

Dieser Eventhandler kann in einer Unterklasse neu implementiert werden, um Eingabemethodenereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, so dass es nicht notwendig ist, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Diese Methode ist nur für Eingabeelemente relevant.

Wenn es sich bei diesem Element um ein Eingabeelement handelt, sollte diese Methode neu implementiert werden, um die entsprechenden Eingabemethoden-Flags für das angegebene query zurückzugeben.

Siehe auch QWidget::inputMethodQuery().

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

Gibt true zurück, wenn dieses Element ein Vorfahre von child ist (d. h., wenn dieses Element ein Elternteil von child oder ein Vorfahre eines Elternteils von child ist).

Siehe auch parentItem().

[protected] bool QQuickItem::isComponentComplete() const

Gibt true zurück, wenn die Konstruktion der QML-Komponente abgeschlossen ist; andernfalls wird false zurückgegeben.

Oft ist es wünschenswert, einige Verarbeitungsschritte zu verzögern, bis die Komponente fertiggestellt ist.

Siehe auch componentComplete().

bool QQuickItem::isFocusScope() const

Gibt true zurück, wenn dieses Element ein Fokusbereich ist, andernfalls false.

[virtual] bool QQuickItem::isTextureProvider() const

Gibt true zurück, wenn dieses Element ein Texturanbieter ist. Die Standardimplementierung gibt false zurück.

Diese Funktion kann von jedem Thread aus aufgerufen werden.

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

Wird aufgerufen, wenn change für dieses Element auftritt.

value enthält gegebenenfalls zusätzliche Informationen über die Änderung.

Wenn Sie diese Methode in einer Unterklasse neu implementieren, stellen Sie sicher, dass Sie

QQuickItem::itemChange(change, value);

typischerweise am Ende Ihrer Implementierung aufrufen, um sicherzustellen, dass das Signal windowChanged() ausgegeben wird.

bool QQuickItem::keepMouseGrab() const

Gibt zurück, ob Mauseingaben ausschließlich bei diesem Element verbleiben sollen.

Siehe auch setKeepMouseGrab(), QEvent::accept(), und QEvent::ignore().

bool QQuickItem::keepTouchGrab() const

Gibt zurück, ob die von diesem Element gegriffenen Touchpoints ausschließlich bei diesem Element verbleiben sollen.

Siehe auch setKeepTouchGrab(), keepMouseGrab(), QEvent::accept(), und QEvent::ignore().

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Tastendruck-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Ereignisse zur Freigabe von Tasten für ein Element zu empfangen. Die Ereignisinformationen werden über den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

[invokable] QPointF QQuickItem::mapFromGlobal(const QPointF &point) const

Bildet den angegebenen point im globalen Bildschirmkoordinatensystem auf den entsprechenden Punkt im Koordinatensystem dieses Elements ab und gibt die abgebildete Koordinate zurück.

Die folgenden Eigenschaften des Objekts werden bei der Zuordnung verwendet: x, y, scale, rotation, transformOrigin, und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Dies kann zum Beispiel hilfreich sein, um ein Popup zu einer Qt Quick Komponente hinzuzufügen.

Hinweis: Die Fensterpositionierung wird vom Fenstermanager vorgenommen, und dieser Wert wird nur als Hinweis behandelt. Daher kann die resultierende Fensterposition von der erwarteten abweichen.

Hinweis: Wenn sich dieses Element in einer Subszene befindet, z. B. auf ein 3D Model Objekt abgebildet, wird die UV-Zuordnung in diese Transformation einbezogen, so dass sie wirklich von den Bildschirmkoordinaten zu den Koordinaten dieses Elements geht, solange point tatsächlich innerhalb der Grenzen dieses Elements liegt. Die anderen Mapping-Funktionen arbeiten noch nicht auf diese Weise.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Überträgt den angegebenen point im Koordinatensystem von item auf den entsprechenden Punkt im Koordinatensystem dieses Elements und gibt die übertragene Koordinate zurück.

Die folgenden Eigenschaften des Objekts werden bei der Zuordnung verwendet: x, y, scale, rotation, transformOrigin, und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Wenn item nullptr ist, wird point aus dem Koordinatensystem der Szene abgebildet.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Überträgt den angegebenen point im Koordinatensystem der Szene auf den entsprechenden Punkt im Koordinatensystem dieses Objekts und gibt die übertragene Koordinate zurück.

Die folgenden Eigenschaften des Objekts werden bei der Zuordnung verwendet: x, y, scale, rotation, transformOrigin, und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Ordnet das angegebene rect im Koordinatensystem von item der entsprechenden rechteckigen Fläche im Koordinatensystem dieses Elements zu und gibt den Wert des zugeordneten Rechtecks zurück.

Die folgenden Eigenschaften des Elements werden bei der Abbildung verwendet: x, y, scale, rotation, transformOrigin und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Abbildung die relative Position der beiden Szenen.

Wenn item nullptr ist, wird rect vom Koordinatensystem der Szene aus zugeordnet.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Überträgt das angegebene rect im Koordinatensystem der Szene auf die entsprechende rechteckige Fläche im Koordinatensystem dieses Elements und gibt den Wert des übertragenen Rechtecks zurück.

Die folgenden Eigenschaften des Objekts werden bei der Abbildung verwendet: x, y, scale, rotation, transformOrigin und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Bildet die angegebene rect im Koordinatensystem dieses Elements auf die entsprechende rechteckige Fläche im Koordinatensystem von item ab und gibt den Wert des abgebildeten Rechtecks zurück.

Die folgenden Eigenschaften des Objekts werden bei der Abbildung verwendet: x, y, scale, rotation, transformOrigin und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Abbildung die relative Position der beiden Szenen.

Wenn item nullptr ist, wird rect auf das Koordinatensystem der Szene abgebildet.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Bildet die angegebene rect im Koordinatensystem dieses Objekts auf die entsprechende rechteckige Fläche im Koordinatensystem der Szene ab und gibt den Wert des abgebildeten Rechtecks zurück.

Die folgenden Eigenschaften des Objekts werden bei der Abbildung verwendet: x, y, scale, rotation, transformOrigin und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

[invokable] QPointF QQuickItem::mapToGlobal(const QPointF &point) const

Ordnet den angegebenen Punkt point im Koordinatensystem dieses Elements dem entsprechenden Punkt im globalen Bildschirmkoordinatensystem zu und gibt die zugeordnete Koordinate zurück.

Die folgenden Eigenschaften des Objekts werden bei der Zuordnung verwendet: x, y, scale, rotation, transformOrigin, und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Dies kann zum Beispiel hilfreich sein, um ein Popup zu einer Qt Quick Komponente hinzuzufügen.

Hinweis: Die Fensterpositionierung wird vom Fenstermanager vorgenommen, und dieser Wert wird nur als Hinweis behandelt. Daher kann die resultierende Fensterposition von der erwarteten abweichen.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Ordnet den angegebenen Punkt point im Koordinatensystem dieses Elements dem entsprechenden Punkt im Koordinatensystem von item zu und gibt die zugeordnete Koordinate zurück.

Die folgenden Eigenschaften des Objekts werden bei der Zuordnung verwendet: x, y, scale, rotation, transformOrigin, und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Wenn item nullptr ist, wird point auf das Koordinatensystem der Szene abgebildet.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Ordnet den angegebenen point im Koordinatensystem dieses Objekts dem entsprechenden Punkt im Koordinatensystem der Szene zu und gibt die zugeordnete Koordinate zurück.

Die folgenden Eigenschaften des Objekts werden bei der Zuordnung verwendet: x, y, scale, rotation, transformOrigin, und transform.

Wenn die Elemente Teil verschiedener Szenen sind, enthält die Zuordnung die relative Position der beiden Szenen.

Siehe auch Konzepte - Visuelle Koordinaten in Qt Quick.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Maus-Doppelklick-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Mausbewegungsereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Um Mausbewegungsereignisse zu empfangen, muss das vorhergehende Mausdruckereignis akzeptiert werden (z. B. durch Überschreiben von mousePressEvent()) und acceptedMouseButtons() muss die entsprechende Maustaste zurückgeben.

Das Ereignis wird standardmäßig akzeptiert, so dass es nicht notwendig ist, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Dieser Eventhandler kann in einer Unterklasse neu implementiert werden, um Mausdruckereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Um Mausdruckereignisse zu empfangen, muss acceptedMouseButtons() die entsprechende Maustaste zurückgeben.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Mausfreigabe-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Um Mausfreigabeereignisse zu empfangen, muss das vorhergehende Mausdruckereignis akzeptiert werden (z. B. durch Überschreiben von mousePressEvent()) und acceptedMouseButtons() muss die entsprechende Maustaste zurückgeben.

Das Ereignis wird standardmäßig akzeptiert, so dass es nicht notwendig ist, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

[virtual protected] void QQuickItem::mouseUngrabEvent()

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um benachrichtigt zu werden, wenn ein Mouse-Ungrab-Ereignis für dieses Element eingetreten ist.

[invokable] QQuickItem *QQuickItem::nextItemInFocusChain(bool forward = true)

Gibt das Element in der Fokuskette zurück, das sich neben diesem Element befindet. Wenn forward gleich true ist oder nicht angegeben wird, handelt es sich um das nächste Element in Vorwärtsrichtung. Wenn forward gleich false ist, handelt es sich um das nächste Element in Rückwärtsrichtung.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

void QQuickItem::polish()

Plant ein polnisches Ereignis für dieses Element.

Wenn der Szenengraf die Anfrage verarbeitet, ruft er updatePolish() für dieses Element auf.

Siehe auch updatePolish(), QQuickTest::qIsPolishScheduled(), und ensurePolished().

[virtual protected] void QQuickItem::releaseResources()

Diese Funktion wird aufgerufen, wenn ein Element Grafikressourcen freigeben soll, die nicht bereits von den von QQuickItem::updatePaintNode() zurückgegebenen Knoten verwaltet werden.

Dies geschieht, wenn das Element aus dem Fenster, in dem es zuvor gerendert wurde, entfernt werden soll. Es ist garantiert, dass das Element eine window hat, wenn die Funktion aufgerufen wird.

Die Funktion wird im GUI-Thread aufgerufen und der Zustand des Rendering-Threads ist unbekannt, wenn sie verwendet wird. Objekte sollten nicht direkt gelöscht werden, sondern mit QQuickWindow::scheduleRenderJob() für die Bereinigung eingeplant werden.

Siehe auch Graphics Resource Handling.

QQuickItem *QQuickItem::scopedFocusItem() const

Wenn dieses Element ein Fokusbereich ist, wird das Element in seiner Fokuskette zurückgegeben, das derzeit den Fokus hat.

Gibt nullptr zurück, wenn dieses Element kein Fokusbereich ist.

void QQuickItem::setAcceptHoverEvents(bool enabled)

Wenn enabled wahr ist, wird das Element so eingestellt, dass es Hover-Ereignisse akzeptiert; andernfalls werden Hover-Ereignisse von diesem Element nicht akzeptiert.

Siehe auch acceptHoverEvents().

void QQuickItem::setAcceptTouchEvents(bool enabled)

Wenn enabled wahr ist, wird das Element so eingestellt, dass es Berührungsereignisse akzeptiert; andernfalls werden Berührungsereignisse von diesem Element nicht akzeptiert.

Siehe auch acceptTouchEvents().

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

Setzt die von diesem Element akzeptierten Maustasten auf buttons.

Hinweis: In Qt 5 führte der Aufruf von setAcceptedMouseButtons() implizit dazu, dass ein Element sowohl Berührungsereignisse als auch Mausereignisse empfing; es wurde jedoch empfohlen, setAcceptTouchEvents() aufzurufen, um diese zu abonnieren. In Qt 6 ist es notwendig, setAcceptTouchEvents() aufzurufen, um sie weiterhin zu empfangen.

Siehe auch acceptedMouseButtons().

void QQuickItem::setCursor(const QCursor &cursor)

Legt die Form cursor für dieses Element fest.

Siehe auch cursor() und unsetCursor().

void QQuickItem::setFiltersChildMouseEvents(bool filter)

Legt fest, ob Zeigerereignisse, die für die Kinder dieses Elements bestimmt sind, über dieses Element gefiltert werden sollen.

Wenn filter wahr ist, wird childMouseEventFilter() aufgerufen, wenn ein Zeigerereignis für ein untergeordnetes Element ausgelöst wird.

Siehe auch filtersChildMouseEvents().

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

Aktiviert das angegebene flag für dieses Element, wenn enabled wahr ist; wenn enabled falsch ist, ist das Kennzeichen deaktiviert.

Diese bieten verschiedene Hinweise für das Element; das Kennzeichen ItemClipsChildrenToShape zeigt beispielsweise an, dass alle untergeordneten Elemente dieses Elements beschnitten werden sollten, damit sie in den Elementbereich passen.

void QQuickItem::setFlags(QQuickItem::Flags flags)

Aktiviert die angegebene flags für dieses Element.

Siehe auch flags() und setFlag().

void QQuickItem::setFocusPolicy(Qt::FocusPolicy policy)

Setzt die Fokusrichtlinie dieses Elements auf policy.

Hinweis: Setter-Funktion für die Eigenschaft focusPolicy.

Siehe auch focusPolicy().

void QQuickItem::setKeepMouseGrab(bool keep)

Legt fest, ob die Mauseingabe ausschließlich bei diesem Element verbleiben soll.

Dies ist nützlich für Elemente, die die Mausinteraktion nach einer vordefinierten Geste erfassen und beibehalten möchten. Ein Element, das an horizontalen Mausbewegungen interessiert ist, kann zum Beispiel keepMouseGrab auf true setzen, sobald ein Schwellenwert überschritten wurde. Sobald keepMouseGrab auf true gesetzt ist, reagieren die Filterelemente nicht mehr auf Mausereignisse.

Wenn keep auf false gesetzt ist, kann ein filterndes Element den Greifer stehlen. Zum Beispiel kann Flickable versuchen, einen Mausgriff zu stehlen, wenn es erkennt, dass der Benutzer begonnen hat, das Ansichtsfenster zu bewegen.

Siehe auch keepMouseGrab().

void QQuickItem::setKeepTouchGrab(bool keep)

Legt fest, ob die von diesem Element ergriffenen Berührungspunkte ausschließlich bei diesem Element verbleiben sollen.

Dies ist nützlich für Elemente, die bestimmte Berührungspunkte nach einer vordefinierten Geste ergreifen und behalten möchten. Beispielsweise kann ein Element, das an horizontalen Berührungspunktbewegungen interessiert ist, setKeepTouchGrab auf true setzen, sobald ein Schwellenwert überschritten wurde. Sobald setKeepTouchGrab auf true gesetzt wurde, reagieren die Filterelemente nicht mehr auf die entsprechenden Berührungspunkte.

Wenn keep auf false gesetzt ist, kann ein filterndes Element den Greifer stehlen. Zum Beispiel kann Flickable versuchen, einen Berührungspunkt zu stehlen, wenn es feststellt, dass der Benutzer begonnen hat, das Ansichtsfenster zu bewegen.

Siehe auch keepTouchGrab() und setKeepMouseGrab().

void QQuickItem::setSize(const QSizeF &size)

Setzt die Größe des Elements auf size. Diese Methode bewahrt alle bestehenden Bindungen für Breite und Höhe; daher überschreibt jede Änderung, die eine erneute Ausführung der Bindung auslöst, die festgelegten Werte.

Siehe auch size, setWidth, und setHeight.

QSizeF QQuickItem::size() const

Gibt die Größe des Objekts zurück.

Siehe auch setSize, width, und height.

void QQuickItem::stackAfter(const QQuickItem *sibling)

Verschiebt das angegebene Element sibling innerhalb der Liste der untergeordneten Elemente auf den Index nach diesem Element. Die Reihenfolge der Kinder wirkt sich sowohl auf die visuelle Stapelreihenfolge als auch auf die Navigationsreihenfolge des Tab-Fokus aus.

Unter der Annahme, dass die z-Werte der beiden Elemente gleich sind, wird sibling unter diesem Element angezeigt.

Wenn für beide Elemente activeFocusOnTab auf true gesetzt ist, ändert sich auch die Reihenfolge des Registerkartenfokus, wobei sibling den Fokus vor diesem Element erhält.

Das angegebene sibling muss ein Geschwisterelement dieses Elements sein, d. h. sie müssen denselben unmittelbaren parent haben.

Siehe auch Konzepte - Visual Parent in Qt Quick.

void QQuickItem::stackBefore(const QQuickItem *sibling)

Verschiebt das angegebene Element sibling innerhalb der Liste der untergeordneten Elemente auf den Index vor diesem Element. Die Reihenfolge der Kinder wirkt sich sowohl auf die visuelle Stapelreihenfolge als auch auf die Navigationsreihenfolge des Tab-Fokus aus.

Unter der Annahme, dass die z-Werte beider Elemente gleich sind, wird sibling über diesem Element gerendert.

Wenn für beide Elemente activeFocusOnTab auf true gesetzt ist, ändert sich auch die Reihenfolge des Registerkartenfokus, wobei sibling den Fokus nach diesem Element erhält.

Das angegebene sibling muss ein Geschwisterelement dieses Elements sein, d. h. sie müssen denselben unmittelbaren parent haben.

Siehe auch Konzepte - Visual Parent in Qt Quick.

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

Gibt den Texturanbieter für ein Element zurück. Die Standardimplementierung gibt nullptr zurück.

Diese Funktion darf nur im Rendering-Thread aufgerufen werden.

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Berührungsereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

[virtual protected] void QQuickItem::touchUngrabEvent()

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um benachrichtigt zu werden, wenn ein Touch-Ungrab-Ereignis für dieses Element eingetreten ist.

void QQuickItem::unsetCursor()

Löscht die Cursorform für dieses Element.

Siehe auch cursor() und setCursor().

[slot] void QQuickItem::update()

Plant einen Aufruf an updatePaintNode() für diesen Artikel.

Der Aufruf von QQuickItem::updatePaintNode() erfolgt immer dann, wenn das Element in einer QQuickWindow angezeigt wird.

Nur Elemente, die QQuickItem::ItemHasContents angeben, dürfen QQuickItem::update() aufrufen.

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

Benachrichtigung der Eingabemethode über aktualisierte Abfragewerte, falls erforderlich. queries zeigt die geänderten Attribute an.

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

Wird im Render-Thread aufgerufen, wenn es an der Zeit ist, den Zustand des Objekts mit dem Szenegraphen zu synchronisieren.

Die Funktion wird als Ergebnis von QQuickItem::update() aufgerufen, wenn der Benutzer das Flag QQuickItem::ItemHasContents für das Element gesetzt hat.

Die Funktion sollte die Wurzel des Unterbaums des Szenengraphen für dieses Element zurückgeben. Die meisten Implementierungen geben einen einzelnen QSGGeometryNode zurück, der die visuelle Darstellung dieses Elements enthält. oldNode ist der Knoten, der beim letzten Aufruf der Funktion zurückgegeben wurde. updatePaintNodeData liefert einen Zeiger auf den QSGTransformNode, der mit diesem QQuickItem verbunden ist.

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;
}

Der Haupt-Thread ist blockiert, während diese Funktion ausgeführt wird, so dass es sicher ist, Werte aus der QQuickItem -Instanz und anderen Objekten im Haupt-Thread zu lesen.

Wenn kein Aufruf von QQuickItem::updatePaintNode() zu tatsächlichen Änderungen des Szenengraphen führt, wie QSGNode::markDirty() oder das Hinzufügen und Entfernen von Knoten, dann kann die zugrunde liegende Implementierung entscheiden, die Szene nicht erneut zu rendern, da das visuelle Ergebnis identisch ist.

Warnung: Es ist von entscheidender Bedeutung, dass Grafikoperationen und Interaktionen mit dem Szenengraphen ausschließlich auf dem Render-Thread stattfinden, vor allem während des QQuickItem::updatePaintNode()-Aufrufs. Die beste Faustregel ist, nur Klassen mit dem Präfix "QSG" innerhalb der Funktion QQuickItem::updatePaintNode() zu verwenden.

Warnung: Diese Funktion wird auf dem Render-Thread aufgerufen. Das bedeutet, dass alle QObjects oder thread-lokalen Speicher, die erstellt werden, eine Affinität zum Render-Thread haben. Seien Sie also vorsichtig, wenn Sie etwas anderes als Rendering in dieser Funktion machen. Ähnlich verhält es sich mit Signalen, diese werden im Render-Thread ausgegeben und daher oft über Warteschlangenverbindungen übermittelt.

Hinweis: Alle Klassen mit dem Präfix QSG sollten ausschließlich im Rendering-Thread des Szenegraphs verwendet werden. Siehe Scene Graph und Rendering für weitere Informationen.

Siehe auch QSGMaterial, QSGGeometryNode, QSGGeometry, QSGFlatColorMaterial, QSGTextureMaterial, QSGNode::markDirty(), und Graphics Resource Handling.

[virtual protected] void QQuickItem::updatePolish()

Diese Funktion sollte alle für diesen Gegenstand erforderlichen Gestaltungsarbeiten durchführen.

Wenn polish() aufgerufen wird, plant der Szenengraf ein Polishing-Ereignis für dieses Element. Wenn der Szenengraf bereit ist, dieses Element zu rendern, ruft er updatePolish() auf, um das Elementlayout wie erforderlich zu ändern, bevor er das nächste Bild rendert.

Siehe auch ensurePolished().

QQuickItem *QQuickItem::viewportItem() const

Wenn das Kennzeichen ItemObservesViewport gesetzt ist, wird das nächstgelegene übergeordnete Element mit dem Kennzeichen ItemIsViewport zurückgegeben. Gibt das contentItem des Fensters zurück, wenn das Flag nicht gesetzt ist, oder wenn kein anderes Ansichtsfenster-Element gefunden wird.

Gibt nullptr nur zurück, wenn es kein Ansichtsfenster-Element gibt und dieses Element nicht in einem Fenster angezeigt wird.

Siehe auch clipRect().

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

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Rad-Ereignisse für ein Element zu empfangen. Die Ereignisinformationen werden durch den Parameter event bereitgestellt.

Das Ereignis wird standardmäßig akzeptiert, daher ist es nicht notwendig, das Ereignis explizit zu akzeptieren, wenn Sie diese Funktion neu implementieren. Wenn Sie das Ereignis nicht akzeptieren, rufen Sie event->ignore() auf.

[protected] bool QQuickItem::widthValid() const

Gibt zurück, ob die Eigenschaft width explizit festgelegt wurde.

QQuickWindow *QQuickItem::window() const

Gibt das Fenster zurück, in dem dieses Element gerendert wird.

Das Element hat erst dann ein Fenster, wenn es einer Szene zugewiesen wurde. Das Signal windowChanged() benachrichtigt sowohl, wenn das Element in eine Szene eingefügt wird, als auch, wenn es aus einer Szene entfernt wird.

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

Dieses Signal wird ausgegeben, wenn sich der Artikel window ändert.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.