LayoutItemProxy QML Type
La clase LayoutItemProxy proporciona un marcador de posición para QQuickItems en los diseños. Más...
| Import Statement: | import QtQuick.Layouts |
| Since: | QtQuick.Layouts 6.6 |
| Inherits: |
Propiedades
- target : Item
Descripción detallada
Algunos diseños responsivos requieren diferentes jerarquías de diseño para diferentes tamaños de pantalla, pero la jerarquía de diseño es la misma que la estructura QML y por lo tanto no se puede cambiar en tiempo de ejecución. LayoutItemProxy supera esta limitación representando un elemento target dentro del diseño. El propio elemento target puede definirse en cualquier lugar de la jerarquía QML. Esto permite declarar varios diseños con los mismos elementos de contenido. Los diseños se pueden mostrar y ocultar para cambiar entre ellos.
El LayoutItemProxy intentará tomar el control del elemento target si es visible. Al tomar el control, el elemento target se posicionará y cambiará de tamaño para que coincida con la posición y el tamaño del LayoutItemProxy. Además, el LayoutItemProxy se establecerá como padre del target (para asegurar la entrega de eventos y un orden de dibujo útil) y establecerá la visibilidad en true. Múltiples LayoutItemProxies pueden target el mismo elemento, pero sólo un LayoutItemProxy puede controlar un elemento a la vez. Por lo tanto, sólo uno de los proxies que controlan el mismo elemento debe ser visible a la vez. Si varios proxies se dirigen al mismo elemento pero el valor de visible es falso para cada proxy, el elemento también será invisible.
Todas las propiedades adjuntas a Layout de target, así como las de QQuickItem::implicitWidth y QQuickItem::implicitHeight de target son reenviadas por el LayoutItemProxy. El LayoutItemProxy imitará al target lo más fielmente posible en cuanto a propiedades y tamaño de Layout. Las propiedades adjuntas de Layout también pueden establecerse explícitamente en el LayoutItemProxy, lo que detendrá el reenvío de las propiedades de target.
Ejemplo de uso
Este es un ejemplo minimalista, cambiando entre dos layouts usando proxies para usar los mismos elementos en ambos layouts. Los ítems que pueblan los layouts pueden ser definidos en un punto arbitrario de la estructura QML.
Rectangle { id: rectangle1 color: "tomato" Layout.fillHeight: true Layout.fillWidth: true } Rectangle { id: rectangle2 color: "lightskyblue" Layout.fillHeight: true Layout.fillWidth: true }
Entonces podemos definir los Layouts con LayoutItemProxys
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 } }
Ahora podemos cambiar entre los layouts, dependiendo de un criterio de nuestra elección, activando y desactivando la visibilidad de los layouts.
onWidthChanged: { if (width < 300) { l2.visible = false l1.visible = true } else { l1.visible = false l2.visible = true } }
Los dos diseños resultantes tienen este aspecto:

El LayoutItemProxy también se puede utilizar sin layouts, por ejemplo, anclándolo a diferentes elementos. Una mezcla de elementos reales Items y proxy es igualmente posible, así como estructuras anidadas de diseños y elementos.
Advertencia: El LayoutItemProxy establecerá el padre de su objetivo en sí mismo. Tenlo en cuenta cuando te refieras al padre del elemento objetivo.
Ver también Item, GridLayout, RowLayout, y ColumnLayout.
Documentación de Propiedades
target : Item
Esta propiedad contiene el Item que el proxy debe representar en una jerarquía Layout.
© 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.