LayoutItemProxy QML Type
La classe `LayoutItemProxy` fournit un espace réservé pour les ` QQuickItem` dans les mises en page. En savoir plus...
| Import Statement: | import QtQuick.Layouts |
| Since: | QtQuick.Layouts 6.6 |
| Inherits: |
Propriétés
- target : Item
Description détaillée
Certaines mises en page adaptatives nécessitent des hiérarchies de mise en page différentes selon la taille de l'écran, mais la hiérarchie de mise en page est identique à la structure QML et ne peut donc pas être modifiée lors de l'exécution. LayoutItemProxy contourne cette limitation en représentant un élément « target » au sein de la mise en page. L'élément « target » lui-même peut être défini n'importe où dans la hiérarchie QML. Cela permet de déclarer plusieurs mises en page contenant les mêmes éléments de contenu. Les mises en page peuvent être affichées ou masquées pour passer de l'une à l'autre.
Le LayoutItemProxy tentera de prendre le contrôle de l’élément « target » s’il est de type « visible ». Cette prise de contrôle positionnera et redimensionnera l’élément « target » afin qu’il corresponde à la position et à la taille du LayoutItemProxy. De plus, le LayoutItemProxy se désignera comme parent de l’« target » (afin de garantir la transmission des événements et un ordre de dessin approprié) et définira sa visibilité sur « true ». Plusieurs `LayoutItemProxies` peuvent « target » le même élément, mais un seul `LayoutItemProxy` peut contrôler un élément à la fois. Par conséquent, seul l’un des proxys ciblant le même élément doit être visible à un moment donné. Si plusieurs proxys ciblent le même élément mais que la propriété `visible` est définie sur `false` pour chaque proxy, l’élément sera également invisible.
Toutes les propriétés attachées « Layout » de l’ target, ainsi que les propriétés « QQuickItem::implicitWidth » et « QQuickItem::implicitHeight » de l’ target, sont transmises par le LayoutItemProxy. Le LayoutItemProxy imitera l’ target aussi fidèlement que possible en termes de propriétés « Layout » et de taille. Les propriétés attachées « Layout » peuvent également être définies explicitement sur le LayoutItemProxy, ce qui mettra fin à la transmission des propriétés « target ».
Exemple d’utilisation
Il s’agit d’un exemple minimaliste, permettant de basculer entre deux mises en page à l’aide de proxys afin d’utiliser les mêmes éléments dans les deux mises en page. Les éléments qui composent les mises en page peuvent être définis à n’importe quel endroit de la structure QML.
Rectangle {
id: rectangle1
color: "tomato"
Layout.fillHeight: true
Layout.fillWidth: true
}
Rectangle {
id: rectangle2
color: "lightskyblue"
Layout.fillHeight: true
Layout.fillWidth: true
}Nous pouvons ensuite définir les mises en page à l'aide de `LayoutItemProxy`
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 }
}Nous pouvons désormais basculer entre les mises en page, en fonction d’un critère de notre choix, en activant ou désactivant leur visibilité.
onWidthChanged: {
if (width < 300) {
l2.visible = false
l1.visible = true
} else {
l1.visible = false
l2.visible = true
}
}Les deux mises en page obtenues se présentent comme suit :

Le `LayoutItemProxy` peut également être utilisé sans mise en page, par exemple en l'ancrant à différents éléments. Il est tout aussi possible de mélanger des éléments ` Items ` réels et des éléments proxy, ainsi que d'utiliser des structures imbriquées de mises en page et d'éléments.
Avertissement : le LayoutItemProxy définit son propre élément comme parent de son élément cible. Gardez cela à l’esprit lorsque vous faites référence au parent de l’élément cible.
Voir également Item, GridLayout, RowLayout et ColumnLayout.
Documentation sur les propriétés
target : Item
Cette propriété contient l'Item s que le proxy doit représenter dans une hiérarchie 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.