LayoutItemProxy QML Type

LayoutItemProxy 클래스는 레이아웃에서 QQuickItem에 대한 플레이스홀더를 제공합니다. 더 보기...

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

Item

속성

상세 설명

일부 반응형 레이아웃은 화면 크기에 따라 다른 레이아웃 계층구조가 필요하지만 레이아웃 계층구조는 QML 구조와 동일하므로 런타임에 변경할 수 없습니다. LayoutItemProxy는 레이아웃 내에서 target 항목을 표현함으로써 이러한 한계를 극복합니다. target 항목 자체는 QML 계층 구조의 어느 곳에서나 정의할 수 있습니다. 이를 통해 동일한 콘텐츠 항목으로 여러 레이아웃을 선언할 수 있습니다. 레이아웃을 표시하거나 숨겨서 레이아웃 간에 전환할 수 있습니다.

target 항목이 visible 인 경우 LayoutItemProxy가 제어를 시도합니다. 제어권을 가져가면 target 항목의 위치와 크기가 LayoutItemProxy의 위치와 크기에 맞게 조정됩니다. 또한 레이아웃 항목 프록시는 이벤트 전달 및 유용한 그리기 순서를 보장하기 위해 자신을 target 의 부모로 설정하고 가시성을 true 로 설정합니다. 여러 레이아웃 항목 프록시가 동일한 항목을 target 할 수 있지만, 한 번에 하나의 레이아웃 항목 프록시만 항목을 제어할 수 있습니다. 따라서 동일한 항목을 대상으로 하는 프록시 중 하나만 한 번에 표시되어야 합니다. 여러 프록시가 동일한 항목을 대상으로 하지만 각 프록시에 대해 표시됨이 false로 설정되어 있으면 해당 항목도 보이지 않게 됩니다.

target 의 모든 Layout 첨부 프로퍼티와 QQuickItem::implicitWidthQQuickItem::implicitHeighttarget 는 LayoutItemProxy에 의해 전달됩니다. 레이아웃 항목 프록시는 Layout 속성과 크기 측면에서 target 을 최대한 비슷하게 모방합니다. Layout 첨부 속성은 레이아웃 항목 프록시에 명시적으로 설정하여 target 속성의 전달을 중지할 수도 있습니다.

사용 예

다음은 프록시를 사용하여 두 레이아웃 간에 변경하여 두 레이아웃에서 동일한 항목을 사용하는 최소한의 예시입니다. 레이아웃을 채우는 항목은 QML 구조의 임의의 지점에서 정의할 수 있습니다.

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

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

그런 다음 레이아웃 항목 프록시를 사용하여 레이아웃을 정의할 수 있습니다.

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 }
}

이제 레이아웃의 표시 여부를 토글하여 원하는 기준에 따라 레이아웃 간에 전환할 수 있습니다.

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

두 레이아웃의 결과물은 다음과 같습니다:

레이아웃 항목 프록시는 다른 항목에 고정하는 등 레이아웃 없이도 사용할 수 있습니다. 실제 Items 및 프록시 항목의 혼합은 물론 레이아웃과 항목의 중첩 구조도 똑같이 가능합니다.

경고: 레이아웃아이템프록시는 대상의 부모를 자신으로 설정합니다. 대상 항목의 부모를 참조할 때 이 점을 염두에 두세요.

Item, GridLayout, RowLayout, ColumnLayout참조하세요 .

속성 문서

target : Item

이 속성은 Layout 계층 구조에서 프록시가 나타내야 하는 Item 을 보유합니다.


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