Auf dieser Seite

LayoutItemProxy QML Type

Die Klasse „LayoutItemProxy“ stellt einen Platzhalter für „ QQuickItems“ in Layouts bereit. Mehr...

Import Statement: import QtQuick.Layouts
Since: QtQuick.Layouts 6.6
Inherits:

Item

Eigenschaften

Ausführliche Beschreibung

Einige responsive Layouts erfordern unterschiedliche Layout-Hierarchien für verschiedene Bildschirmgrößen, doch die Layout-Hierarchie entspricht der QML-Struktur und kann daher zur Laufzeit nicht geändert werden. LayoutItemProxy überwindet diese Einschränkung, indem es ein „ target “-Element innerhalb des Layouts darstellt. Das „ target “-Element selbst kann an beliebiger Stelle in der QML-Hierarchie definiert werden. Dies ermöglicht die Deklaration mehrerer Layouts mit denselben Inhaltselementen. Die Layouts können ein- und ausgeblendet werden, um zwischen ihnen zu wechseln.

Der „LayoutItemProxy“ versucht, die Kontrolle über das „ target “-Element zu übernehmen, sofern es sich um ein „ visible “ handelt. Durch die Übernahme der Kontrolle werden Position und Größe des „ target “-Elements so angepasst, dass sie der Position und Größe des „LayoutItemProxy“ entsprechen. Darüber hinaus setzt sich der „LayoutItemProxy“ selbst als übergeordnetes Element des „ target “ fest (um die Ereignisübermittlung und eine sinnvolle Zeichenreihenfolge zu gewährleisten) und legt die Sichtbarkeit auf „ true “ fest. Mehrere „LayoutItemProxies“ können dasselbe Element als „ target “ verwenden, aber jeweils nur ein „LayoutItemProxy“ kann ein Element steuern. Daher sollte jeweils nur einer der Proxies, die auf dasselbe Element abzielen, sichtbar sein. Wenn mehrere Proxies auf dasselbe Element abzielen, aber die Eigenschaft „visible“ für jeden Proxy auf „false“ gesetzt ist, ist das Element ebenfalls unsichtbar.

Alle an den „ Layout “ angehängten Eigenschaften des „ target “ sowie die Eigenschaften „ QQuickItem::implicitWidth “ und „ QQuickItem::implicitHeight “ des „ target “ werden vom „LayoutItemProxy“ weitergeleitet. Der „LayoutItemProxy“ ahmt das „ target “ hinsichtlich der Eigenschaften „ Layout “ und der Größe so genau wie möglich nach. Die an den „ Layout “ angehängten Eigenschaften können auch explizit am „LayoutItemProxy“ festgelegt werden, wodurch die Weiterleitung der Eigenschaften „ target “ unterbunden wird.

Anwendungsbeispiel

Dies ist ein minimalistisches Beispiel, bei dem mithilfe von Proxys zwischen zwei Layouts gewechselt wird, um in beiden Layouts dieselben Elemente zu verwenden. Die Elemente, die die Layouts füllen, können an einer beliebigen Stelle in der QML-Struktur definiert werden.

Rectangle {
    id: rectangle1
    color: "tomato"
    Layout.fillHeight: true
    Layout.fillWidth: true
}

Rectangle {
    id: rectangle2
    color: "lightskyblue"
    Layout.fillHeight: true
    Layout.fillWidth: true
}

Anschließend können wir die Layouts mit `LayoutItemProxys` definieren

GridLayout {
    id: l1
    columns: 1
    visible: false
    anchors.fill: parent
    LayoutItemProxy { target: rectangle1 }
    LayoutItemProxy { target: rectangle2 }
}

GridLayout {
    id: l2
    columns: 2
    visible: true
    anchors.fill: parent
    LayoutItemProxy { target: rectangle1 }
    LayoutItemProxy { target: rectangle2 }
}

Wir können nun je nach einem Kriterium unserer Wahl zwischen den Layouts wechseln, indem wir die Sichtbarkeit der Layouts ein- und ausschalten.

onWidthChanged: {
    if (width < 300) {
        l2.visible = false
        l1.visible = true
    } else {
        l1.visible = false
        l2.visible = true
    }
}

Die beiden resultierenden Layouts sehen wie folgt aus:

Schmales Fenster mit gestapeltem Layout und breites Fenster mit nebeneinander angeordnetem Layout

Der „LayoutItemProxy“ kann auch ohne Layouts verwendet werden, z. B. durch Verankerung an verschiedenen Elementen. Eine Mischung aus echten „ Items “- und Proxy-Elementen ist ebenso möglich wie verschachtelte Strukturen aus Layouts und Elementen.

Warnung: Der „LayoutItemProxy“ setzt das übergeordnete Element seines Zielelements auf sich selbst. Beachten Sie dies, wenn Sie auf das übergeordnete Element des Zielelements verweisen.

Siehe auch „ Item“ , „ GridLayout “, „ RowLayout “ und „ ColumnLayout “.

Dokumentation zu den Eigenschaften

target : Item

Diese Eigenschaft enthält den „ Item “, den der Proxy in einer „ Layout “-Hierarchie repräsentieren soll.

© 2026 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.