アイテムポジショナー
ポジショナーアイテムは、宣言型ユーザーインターフェースにおいてアイテムの位置を管理するコンテナアイテムです。ポジショナーの動作は、標準の Qt Widgets で使用されるレイアウトマネージャーと似ていますが、それ自体がコンテナでもある点が異なります。
ポジショナーを使用すると、多くのアイテムを規則的なレイアウトに配置する必要がある場合に、作業が容易になります。
Qt Quick レイアウトは、ユーザーインターフェース上でQt Quick のアイテムを配置するためにも使用できます。レイアウトは、宣言型ユーザーインターフェース上のアイテムの位置とサイズの両方を管理し、サイズ変更可能なユーザーインターフェースに最適です。
ポジショナー
Qt Quick の基本的なグラフィカルタイプセットには、一連の標準ポジショナーが用意されています:
子要素を列状に配置します | |
子要素を横並びに配置し、必要に応じて改行を行う | |
子要素をグリッド状に配置します | |
レイアウトの挙動を反転させるために使用されるプロパティ | |
ポジショナー内の項目の位置に関する詳細を含む、アタッチドプロパティを提供します | |
子要素を行に配置します |
列アイテム

Column アイテムは、アイテムを縦方向に配置するために使用されます。次の例では、Columnアイテムを使用して、外側のItem で定義された領域内に3つのRectangle アイテムを配置しています。spacing プロパティは、矩形間にわずかなスペースを含めるように設定されています。
import QtQuick
Item {
width: 310; height: 170
Column {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
spacing: 5
Rectangle { color: "lightblue"; radius: 10.0
width: 300; height: 50
Text { anchors.centerIn: parent
font.pointSize: 24; text: "Books" } }
Rectangle { color: "gold"; radius: 10.0
width: 300; height: 50
Text { anchors.centerIn: parent
font.pointSize: 24; text: "Music" } }
Rectangle { color: "lightgreen"; radius: 10.0
width: 300; height: 50
Text { anchors.centerIn: parent
font.pointSize: 24; text: "Movies" } }
}
}なお、ColumnはItemから直接継承されているため、背景色を適用したい場合は、親のRectangleに設定する必要があります。
Rowアイテム

Row アイテムは、アイテムを水平方向に配置するために使用されます。次の例では、Row アイテムを使用して、外側の色付き Rectangle で定義された領域内に、3 つの角が丸いRectangle アイテムを配置しています。spacing プロパティは、矩形間にわずかなスペースを確保するように設定されています。
水平方向に中央揃えされたRow項目の周囲に若干の余白が残るように、親のRectangleが十分な大きさになるよう設定しています。
import QtQuick
Rectangle {
width: 320; height: 110
color: "#c0c0c0"
Row {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
spacing: 5
Rectangle { width: 100; height: 100; radius: 20.0
color: "#024c1c" }
Rectangle { width: 100; height: 100; radius: 20.0
color: "#42a51c" }
Rectangle { width: 100; height: 100; radius: 20.0
color: "white" }
}
}Gridアイテム

Grid アイテムは、アイテムをグリッドや表のレイアウトに配置するために使用されます。次の例では、Gridアイテムを使用して、4つのRectangle アイテムを2×2のグリッドに配置しています。他のポジショナーと同様に、spacing プロパティを使用してアイテム間の間隔を指定できます。
import QtQuick
Rectangle {
width: 112; height: 112
color: "#303030"
Grid {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
columns: 2
spacing: 6
Rectangle { color: "#aa6666"; width: 50; height: 50 }
Rectangle { color: "#aaaa66"; width: 50; height: 50 }
Rectangle { color: "#9999aa"; width: 50; height: 50 }
Rectangle { color: "#6666aa"; width: 50; height: 50 }
}
}アイテム間に挿入される水平方向と垂直方向の間隔に違いはないため、余分なスペースが必要な場合は、アイテム自体の中に追加する必要があります。
グリッド内の空のセルは、グリッド定義の適切な場所にプレースホルダー項目を定義することで作成する必要があります。
フロー項目

Flow フローアイテムは、単語などのアイテムをページ上に配置するために使用され、アイテムが重ならない行または列で構成されます。
フロー項目は、Grid 項目と同様の方法で項目を配置し、項目は 1 つの軸(副軸)に沿って行に並べられ、項目の行は別の軸(主軸)に沿って隣り合って配置されます。フローの方向および項目間の間隔は、flow およびspacing プロパティによって制御されます。
次の例は、複数のText 子アイテムを含むFlowアイテムを示しています。これらは、スクリーンショットに示されているものと同様の方法で配置されています。
import QtQuick
Rectangle {
color: "lightblue"
width: 300; height: 200
Flow {
anchors.fill: parent
anchors.margins: 4
spacing: 10
Text { text: "Text"; font.pixelSize: 40 }
Text { text: "items"; font.pixelSize: 40 }
Text { text: "flowing"; font.pixelSize: 40 }
Text { text: "inside"; font.pixelSize: 40 }
Text { text: "a"; font.pixelSize: 40 }
Text { text: "Flow"; font.pixelSize: 40 }
Text { text: "item"; font.pixelSize: 40 }
}
}GridポジショナーとFlowポジショナーの主な違いは、Flow内のアイテムは短軸上のスペースが不足すると折り返し表示され、アイテムのサイズが均一でない場合、ある行のアイテムが別の行のアイテムと揃わないことがあるという点です。Gridアイテムと同様に、アイテム間の間隔やアイテムの行間の間隔を個別に制御することはできません。
アイテムを配置するその他の方法
ユーザーインターフェース内でアイテムを配置する方法は他にもいくつかあります。座標を直接指定するという基本的な手法に加え、アンカーを使用して他のアイテムを基準に配置したり、Object Model などのQML データモデルと組み合わせて使用したりすることもできます。
© 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.