LayoutItemProxy QML Type

LayoutItemProxy クラスは、レイアウト内のQQuickItemのプレースホルダを提供します。詳細...

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

Item

プロパティ

詳細説明

レスポンシブレイアウトの中には、画面サイズごとに異なるレイアウト階層を必要とするものがありますが、レイアウト階層はQMLの構造と同じであるため、実行時に変更することができません。LayoutItemProxyは、レイアウト内のtargettarget アイテム自体はQML階層のどこにでも定義することができます。これにより、同じコンテンツアイテムを持つ複数のレイアウトを宣言することができます。レイアウトは表示・非表示を切り替えることができます。

LayoutItemProxyは、target アイテムがvisible の場合、その制御を試みます。コントロールを取ると、target アイテムの位置とサイズが LayoutItemProxy の位置とサイズに合うように変更されます。さらに、LayoutItemProxyは自身をtarget の親に設定し(イベント配信と有用な描画順序を確保するため)、visibilityをtrue に設定します。複数の LayoutItemProxy が同じアイテムをtarget にすることはできますが、一度に 1 つのアイテムを制御できるのは 1 つの LayoutItemProxy だけです。したがって、同じアイテムをターゲットとするプロキシは、一度に1つだけ表示されるべきです。複数のプロキシが同じアイテムをターゲットにしているが、それぞれのプロキシでvisibleが false に設定されている場合、そのアイテムは不可視にもなります。

target のすべてのLayout 添付プロパティ、およびtargetQQuickItem::implicitWidthQQuickItem::implicitHeight は LayoutItemProxy によって転送される。LayoutItemProxy はLayout プロパティとサイズに関してtarget をできるだけ忠実に模倣します。Layout 添付プロパティは LayoutItemProxy 上で明示的に設定することもでき、その場合はtarget プロパティの転送を停止します。

使用例

これは最小限の例で、プロキシを使用して2つのレイアウト間で変更し、両方のレイアウトで同じアイテムを使用します。レイアウトを構成するアイテムはQML構造の任意の場所で定義することができます。

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

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

次に、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 }
}

レイアウトの表示/非表示を切り替えることで、好みの基準でレイアウトを切り替えることができます。

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

2つのレイアウトはこのようになります:

LayoutItemProxyはレイアウトなしで使用することもできます。実際のItems とプロキシアイテムを混在させることも、レイアウトとアイテムの入れ子構造も同様に可能です。

警告 LayoutItemProxyはターゲットの親を自分自身に設定します。ターゲット・アイテムの親を参照するときは、この点に注意してください。

ItemGridLayoutRowLayoutColumnLayoutも参照して ください。

プロパティ Documentation

target : Item

このプロパティは、プロキシがLayout 階層で表すべきItem を保持します。


このプロパティは、プロキシが 階層で表すべき を保持します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。