Qt Quick における重要な概念 - 配置
QML のビジュアルアイテムは、さまざまな方法で配置できます。配置に関連する最も重要な概念は「アンカー」です。これは相対配置の一種であり、アイテムを特定の境界で互いに固定(または結合)することができます。その他の配置の概念には、絶対配置、座標バインディングによる配置、ポジショナー、およびレイアウトなどがあります。
手動による配置
アイテムは手動で配置することができます。ユーザーインターフェースが静的なものである場合、手動配置は最も効率的な配置方法となります。
どのユーザーインターフェースにおいても、視覚要素は常に画面座標上の特定の位置に存在します。Qt Quick では、滑らかなアニメーションや動的なユーザーインターフェースに重点が置かれていますが、静的に配置されたユーザーインターフェースも依然として有効な選択肢です。 さらに、それらの要素の位置が変わらない場合、後述のセクションで説明する動的な配置方法を使用するよりも、手動で位置を指定する方がパフォーマンスが向上することがよくあります。
『Qt Quick 』では、すべてのビジュアルオブジェクトは、Qt Quick のビジュアルキャンバスが提供する座標系内に配置されます。そのドキュメントで説明されているように、ビジュアルオブジェクトの x 座標と y 座標は、その親ビジュアルの座標を基準としており、左上隅の座標は (0, 0) となります。
したがって、次の例では、手動で配置された2つの矩形が表示されます:
| サンプルコード | 結果のレイアウト |
|---|---|
|
バインディングによる配置
また、ビジュアルキャンバス上の位置に関連するプロパティにバインディング式を割り当てることで、項目の配置を行うこともできます。この種の配置は最も動的ですが、この方法で項目を配置するには、ある程度のパフォーマンス上のコストが伴います。
ビジュアルオブジェクトの位置や寸法は、プロパティのバインディングを通じて設定することもできます。これには、バインディングの依存関係が変化すると値が自動的に更新されるという利点があります。たとえば、ある矩形の幅は、その隣にある矩形の幅に依存する場合があります。
バインディングは動的なレイアウトを作成するための非常に柔軟で直感的な方法を提供しますが、それにはある程度のパフォーマンス上のオーバーヘッドが伴うことに留意する必要があります。可能な場合は、純粋なアンカーレイアウトを優先すべきです。
アンカー
アンカーを使用すると、あるアイテムのアンカーポイント(境界)を1つ以上、別のアイテムのアンカーポイントに結びつけることで、そのアイテムを別のアイテムの隣または内部に配置することができます。これらのアンカーは、いずれかのアイテムの寸法や位置が変更されても維持されるため、非常に動的なユーザーインターフェースを実現できます。
視覚オブジェクトには、さまざまなアンカーポイント(より正確にはアンカーライン)があると考えられます。他のアイテムをこれらのポイントにアンカー設定することができ、これにより、いずれかのオブジェクトが変更されても、それにアンカー設定されている他のオブジェクトは、アンカー関係を維持するために自動的に調整されます。
Qt Quick は、アンカーを最上位の概念として提供しています。このトピックに関する詳細については、アンカーを用いた位置指定に関するドキュメントを参照してください。
アンカーベースのレイアウトは、純粋な状態であれば、一般的にバインディングベースのレイアウトよりもはるかにパフォーマンスが高いことに留意することが重要です。 「純粋な」アンカーレイアウトとは、位置決めを決定するためにアンカー(オブジェクトのネストを含む)のみを使用するものを指します。一方、「混在した」アンカーレイアウトとは、アンカーとバインディングの両方(位置関連の [x,y] プロパティ、または寸法関連の [width,height] プロパティ)の両方を使用して位置を決定するレイアウトを指します。
ポジショナー
Qt Quick には、いくつかの組み込みのポジショナー項目も用意されています。多くのユースケースにおいて、最適なポジショナーは単純なグリッド、行、または列であり、Qt Quick は、子要素をこれらの配置で可能な限り効率的な方法で配置する項目を提供します。定義済みのポジショナーの利用に関する詳細については、アイテム・ポジショナーのタイプに関するドキュメントを参照してください。
レイアウト
Qt 5.1 以降では、Qt Quick モジュールのレイアウト機能を使用して、ユーザーインターフェース上でQt Quick のアイテムを配置することも可能です。ポジショナーとは異なり、Qt Quick レイアウトの各タイプは、宣言型インターフェースにおいてアイテムの位置とサイズの両方を管理します。これらは、サイズ変更可能なユーザーインターフェースに最適です。
右から左への表示のサポート
言語の記述方向は、ユーザーインターフェース上の視覚的要素をどのように配置すべきかに大きな影響を与えることがよくあります。Qt Quick は、事前定義されたレイアウトおよび右から左へのテキストレイアウトを通じて、要素の右から左への配置をサポートしています。
このトピックに関する詳細については、 Qt Quick の右から左への配置に関するドキュメントを参照してください。
© 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.
