Qt Quick における重要な概念 - 位置決め
QMLのビジュアルアイテムは様々な方法で配置することができます。位置決めに関連する最も重要な概念はアンカーリングです。アンカーリングは相対的な位置決めの一形態であり、アイテム同士を特定の境界で固定(またはくっつける)することができます。その他、絶対位置決め、座標バインディングによる位置決め、ポジショナー、レイアウトなどがあります。
手動位置決め
アイテムは手動で配置することができる。ユーザーインターフェースが静的なものである場合、手動位置決めは最も効率的な位置決めを提供します。
どのようなユーザー・インターフェースでも、ビジュアル・タイプはスクリーン座標の特定の位置に存在します。流れるようにアニメーションするダイナミックなユーザー・インターフェースは、Qt Quick の主要な焦点ですが、静的に位置決めされたユーザー・インターフェースもまだ有効な選択肢です。さらに、これらのタイプの位置が変更されない場合、後続のセクションで説明されているより動的な位置決め方法を使用するよりも、手動で位置を指定する方がパフォーマンスが高くなることがよくあります。
Qt Quick では、すべてのビジュアル・オブジェクトはQt Quick ビジュアル・キャンバスが提供する座標系内に配置されます。その文書で説明されているように、ビジュアルオブジェクトの x 座標と y 座標はそのビジュアル親の座標からの相対座標で、左上隅の座標は (0, 0) です。
したがって、次の例では2つの矩形を手動で配置して表示します:
コード例 | レイアウト結果 |
---|---|
バインディングによる位置決め
アイテムは、ビジュアル キャンバス内の位置に関連付けられたプロパティにバインド式を割り当てて配置することもできます。このタイプの位置決めは最もダイナミックですが、この方法でアイテムを位置決めする場合、若干のパフォーマンスコストが発生します。
ビジュアルオブジェクトの位置と寸法は、プロパティバインディングで設定することもできます。これには、バインディングの依存関係が変化すると値が自動的に更新されるという利点があります。例えば、あるRectangleの幅は、その隣のRectangleの幅に依存するかもしれません。
バインディングは非常に柔軟で直感的なダイナミックレイアウトの作成方法を提供しますが、パフォーマンスが犠牲になることに注意する必要があります。
アンカー
アンカーは、アイテムの1つ以上のアンカーポイント(境界)を他のアイテムのアンカーポイントにアタッチすることで、アイテムを他のアイテムの隣接または内側に配置することができます。これらのアンカーは、アイテムの寸法や位置が変わっても残るので、非常にダイナミックなユーザー・インターフェースを可能にする。
ビジュアル・オブジェクトは、さまざまなアンカー・ポイント(より正確にはアンカー・ライン)を持っていると考えることができる。他のアイテムはそれらのポイントに固定することができ、オブジェクトが変更されると、それに固定されている他のオブジェクトも自動的に調整され、固定が維持されます。
Qt Quick はトップレベルの概念としてアンカーを提供します。このトピックに関する詳細な情報は、アンカーを使ったポジショニングに関するドキュメントを参照してください。
重要なことは、アンカーベースのレイアウトは、バインディングベースのレイアウトよりもはるかにパフォーマンスが高いということです。原始的な」アンカー・レイアウトとは、アンカー(オブジェクトの入れ子を含む)のみを使用して位置を決定するものであり、「汚染された」アンカー・レイアウトとは、アンカーとバインディング(位置に関連する[x,y]プロパティ、または寸法に関連する[width,height]プロパティ)の両方を使用して位置を決定するものです。
ポジショナー
Qt Quick は、いくつかの組み込みポジショナ項目も提供します。多くの使用例では、使用する最良のポジショナーは、単純なグリッド、行、または列です。 は、可能な限り最も効率的な方法で、これらのフォーメーションに子を配置するアイテムを提供します。あらかじめ定義されたポジショナーの利用方法については、Qt Quick アイテムのポジショナーの種類に関するドキュメントを参照してください。
レイアウト
Qt 5.1 から、Qt Quick Layoutsモジュールを使用して、Qt Quick アイテムをユーザーインターフェイスに配置することができます。ポジショナーとは異なり、Qt Quick レイアウトの型は、宣言的なインターフェイスでアイテムの位置とサイズの両方を管理します。サイズ変更可能なユーザーインターフェースに適しています。
右から左へのサポート
Qt Quick 、右から左へのテキストレイアウトだけでなく、predefined-layoutsを通して型の右から左への配置をサポートしています。
このトピックの詳細については、 Qt Quick の右から左へのサポートに関するドキュメントを参照してください。
© 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.