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 NameninvalidateSceneGraph()
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 durchEGL_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.
Konstante | Wert | Beschreibung |
---|---|---|
QQuickItem::ItemClipsChildrenToShape | 0x01 | Zeigt an, dass dieses Element seine Kinder visuell abschneiden soll, so dass sie nur innerhalb der Grenzen dieses Elements gerendert werden. |
QQuickItem::ItemAcceptsInputMethod | 0x02 | Zeigt an, dass das Element Texteingabemethoden unterstützt. |
QQuickItem::ItemIsFocusScope | 0x04 | Zeigt an, dass das Element ein Fokusbereich ist. Weitere Informationen finden Sie unter Tastaturfokus in Qt Quick. |
QQuickItem::ItemHasContents | 0x08 | Zeigt an, dass das Element visuellen Inhalt hat und vom Szenengraph gerendert werden sollte. |
QQuickItem::ItemAcceptsDrops | 0x10 | Zeigt an, dass das Element Drag&Drop-Ereignisse akzeptiert. |
QQuickItem::ItemIsViewport | 0x20 | Zeigt an, dass das Element ein Ansichtsfenster für seine Kinder definiert. |
QQuickItem::ItemObservesViewport | 0x40 | Zeigt 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.
Konstante | Wert | Beschreibung |
---|---|---|
QQuickItem::ItemChildAddedChange | 0 | Ein Kind wurde hinzugefügt. ItemChangeData::item enthält das hinzugefügte Kind. |
QQuickItem::ItemChildRemovedChange | 1 | Ein Kind wurde entfernt. ItemChangeData::item enthält das entfernte Kind. |
QQuickItem::ItemSceneChange | 2 | Das 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::ItemVisibleHasChanged | 3 | Die Sichtbarkeit des Objekts hat sich geändert. ItemChangeData::boolValue enthält die neue Sichtbarkeit. |
QQuickItem::ItemParentHasChanged | 4 | Das Elternteil des Elements hat sich geändert. ItemChangeData::item enthält das neue Elternteil. |
QQuickItem::ItemOpacityHasChanged | 5 | Die Deckkraft des Objekts hat sich geändert. ItemChangeData::realValue enthält die neue Deckkraft. |
QQuickItem::ItemActiveFocusHasChanged | 6 | Der Fokus des Elements hat sich geändert. ItemChangeData::boolValue enthält, ob das Element den Fokus hat oder nicht. |
QQuickItem::ItemRotationHasChanged | 7 | Die Drehung des Elements hat sich geändert. ItemChangeData::realValue enthält die neue Drehung. |
QQuickItem::ItemDevicePixelRatioHasChanged | 9 | Das 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::ItemAntialiasingHasChanged | 8 | Das Antialiasing hat sich geändert. Der aktuelle (boolesche) Wert ist in QQuickItem::antialiasing zu finden. |
QQuickItem::ItemEnabledHasChanged | 10 | Der 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.
Konstante | Wert | Beschreibung |
---|---|---|
QQuickItem::TopLeft | 0 | Die linke obere Ecke des Objekts. |
QQuickItem::Top | 1 | Der Mittelpunkt des oberen Teils des Objekts. |
QQuickItem::TopRight | 2 | Die rechte obere Ecke des Objekts. |
QQuickItem::Left | 3 | Der äußerste linke Punkt der vertikalen Mitte. |
QQuickItem::Center | 4 | Die Mitte des Artikels. |
QQuickItem::Right | 5 | Der äußerste rechte Punkt der vertikalen Mitte. |
QQuickItem::BottomLeft | 6 | Die untere linke Ecke des Artikels. |
QQuickItem::Bottom | 7 | Der mittlere Punkt der Unterseite des Artikels. |
QQuickItem::BottomRight | 8 | Die rechte untere Ecke des Artikels. |
Siehe auch transformOrigin() und setTransformOrigin().
Eigenschaft Dokumentation
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.
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.
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).
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.
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:
| |
Höhere z oben:
| |
Gleiche z - Kinder über Eltern:
| |
Niedriger z unten:
|
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 boundingRect
aller 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.