LayoutItemProxy QML Type
LayoutItemProxy クラスは、レイアウト内のQQuickItemのプレースホルダを提供します。詳細...
Import Statement: | import QtQuick.Layouts |
Since: | QtQuick.Layouts 6.6 |
Inherits: |
プロパティ
- target : Item
詳細説明
レスポンシブレイアウトの中には、画面サイズごとに異なるレイアウト階層を必要とするものがありますが、レイアウト階層はQMLの構造と同じであるため、実行時に変更することができません。LayoutItemProxyは、レイアウト内のtarget 。target アイテム自体はQML階層のどこにでも定義することができます。これにより、同じコンテンツアイテムを持つ複数のレイアウトを宣言することができます。レイアウトは表示・非表示を切り替えることができます。
LayoutItemProxyは、target アイテムがvisible の場合、その制御を試みます。コントロールを取ると、target アイテムの位置とサイズが LayoutItemProxy の位置とサイズに合うように変更されます。さらに、LayoutItemProxyは自身をtarget の親に設定し(イベント配信と有用な描画順序を確保するため)、visibilityをtrue
に設定します。複数の LayoutItemProxy が同じアイテムをtarget にすることはできますが、一度に 1 つのアイテムを制御できるのは 1 つの LayoutItemProxy だけです。したがって、同じアイテムをターゲットとするプロキシは、一度に1つだけ表示されるべきです。複数のプロキシが同じアイテムをターゲットにしているが、それぞれのプロキシでvisibleが false に設定されている場合、そのアイテムは不可視にもなります。
target のすべてのLayout 添付プロパティ、およびtarget のQQuickItem::implicitWidth とQQuickItem::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はターゲットの親を自分自身に設定します。ターゲット・アイテムの親を参照するときは、この点に注意してください。
Item 、GridLayout 、RowLayout 、ColumnLayoutも参照して ください。
プロパティ Documentation
このプロパティは、プロキシが 階層で表すべき を保持します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。