Sur cette page

LayoutItemProxy QML Type

La classe LayoutItemProxy fournit un espace réservé pour QQuickItems dans les présentations. Plus d'informations...

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

Item

Propriétés

Description détaillée

Certaines mises en page réactives nécessitent différentes hiérarchies de mise en page pour différentes tailles d'écran, mais la hiérarchie de mise en page est la même que la structure QML et ne peut donc pas être modifiée à l'exécution. LayoutItemProxy permet de surmonter cette limitation en représentant un élément target dans 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 présentations avec les mêmes éléments de contenu. Les présentations peuvent être affichées et masquées pour passer de l'une à l'autre.

Le LayoutItemProxy tentera de prendre le contrôle de l'élément target s'il s'agit de visible. La prise de contrôle positionne et redimensionne l'élément target pour qu'il corresponde à la position et à la taille du LayoutItemProxy. En outre, le LayoutItemProxy se définit comme le parent de l'élément target (pour garantir la livraison de l'événement et l'ordre de dessin utile) et définit la visibilité de l'élément 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, un seul des mandataires ciblant le même élément doit être visible à la fois. Si plusieurs mandataires ciblent le même élément mais que la valeur de visible est fixée à false pour chaque mandataire, l'élément sera également invisible.

Toutes les propriétés de Layout attachées à target, ainsi que QQuickItem::implicitWidth et QQuickItem::implicitHeight de target sont transmises par le LayoutItemProxy. Le LayoutItemProxy imitera le plus fidèlement possible le target en termes de propriétés et de taille du Layout. Les propriétés attachées au Layout peuvent également être définies explicitement sur le LayoutItemProxy, ce qui arrêtera la transmission des propriétés du target.

Exemple d'utilisation

Il s'agit d'un exemple minimaliste, qui permet de passer d'une présentation à l'autre en utilisant des mandataires pour utiliser les mêmes éléments dans les deux présentations. Les éléments qui peuplent les présentations peuvent être définis à un endroit arbitraire 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 présentations à l'aide de 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 }
}

Nous pouvons maintenant passer d'une présentation à l'autre, en fonction d'un critère de notre choix, en activant ou en désactivant la visibilité des présentations.

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

Les deux présentations résultantes ressemblent à ceci :

Fenêtre étroite avec disposition empilée et fenêtre large avec disposition côte à côte

Le LayoutItemProxy peut également être utilisé sans layouts, par exemple en l'ancrant à différents éléments. Un mélange de Items et d'éléments proxy est également possible, de même que des structures imbriquées de dispositions et d'éléments.

Attention : Le LayoutItemProxy définira le parent de sa cible comme étant lui-même. 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 le site Item 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.