📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
<code>Row</code>および<code>RowLayout</code>は、見やすいレイアウトを表示するために用意されている。<br> | <code>Row</code>および<code>RowLayout</code>は、見やすいレイアウトを表示するために用意されている。<br> | ||
<br><br> | |||
== Row == | |||
==== 専用プロパティ ==== | |||
* layoutDirection | |||
*: 値 : enumeration型 (既定値 : Qt.LeftToRight) | |||
*: このプロパティは、行のlayoutDirectionを設定する。 | |||
*: <br> | |||
*: Qt.LeftToRightは、アイテムが左から右に向かってレイアウトされる。行の幅が明示的に設定されている場合、左アンカーは行の左に残る。 | |||
*: Qt.RightToLeftは、アイテムが右から左に向かってレイアウトされる。行の幅が明示的に設定されている場合、右アンカーは行の右に残る。 | |||
*: <br> | |||
*: Grid.layoutDirectionプロパティやFlow.layoutDirectionプロパティも参照すること。 | |||
*: <br> | |||
* effectiveLayoutDirection | |||
*: 値 : enumeration型 | |||
*: 行の効果的なレイアウト方向を設定する。 | |||
*: ロケールレイアウトに対して<code>LayoutMirroring.enabled</code>プロパティを使用する場合、行の位置の視覚的なレイアウト方向がミラーリングされる。 | |||
*: ただし、<code>layoutDirection</code>プロパティは変更されない。 | |||
*: <br> | |||
*: <code>Row.layoutDirection</code>プロパティおよび<code>LayoutMirroring</code>プロパティも参照すること。 | |||
*: <br> | |||
* spacing | |||
*: 値 : 実数 (既定値 : 0) | |||
*: 隣り合うアイテムの間を空けるピクセル数を設定する。 | |||
*: Grid.spacingプロパティも参照すること。 | |||
*: <br> | |||
* padding | |||
* topPadding | |||
* bottomPadding | |||
* leftPadding | |||
* rightPadding | |||
*: 値 : real型 | |||
*: コンテンツの周りのパディングを設定する。 | |||
*: このプロパティは、Qt 5.6で導入された。 | |||
*: <br> | |||
* add | |||
*: 値 : Transition型 | |||
*: <code>Row</code>内のアイテムに対して実行されるトランジションを設定する。 | |||
*: アイテムがポジショナーの場合、以下のアイテムが該当する。 | |||
*:* ポジショナーが作成された後に、ポジショナーの子として作成または再配置されたアイテム | |||
*:* 子アイテムの<code>visible</code>プロパティの値が<code>false</code>から<code>true</code>に変更されて、可視状態になったアイテム | |||
*: <br> | |||
*: トランジションは、<code>ViewTransition</code>を使用して、追加されるアイテムの詳細にアクセスできる。 | |||
*: これらのトランジションの使用に関する詳細と例については、<code>ViewTransition</code>のドキュメントを参照すること。 | |||
*: <br> | |||
*: <u>※注意</u> | |||
*: <u><code>add</code>プロパティは、作成時に既にポジショナーの一部となっているアイテムには適用されない。</u> | |||
*: <u>この場合は、代わりに<code>populate</code>プロパティが適用される。</u> | |||
*: <br> | |||
*: <code>populate</code>や<code>ViewTransition</code>も参照すること。 | |||
*: <br> | |||
* move | |||
*: 値 : Transition型 | |||
*: <code>Row</code>内で移動したアイテムに対して実行するトランジションを設定する。 | |||
*: <br> | |||
*: アイテムがポジショナーの場合、以下のアイテムが該当する。 | |||
*:* ポジショナー内の他のアイテムの追加、削除、再配置により、位置がずれた子アイテムの移動 | |||
*:* ポジショナー内の他のアイテムのサイズ変更により再配置された子アイテム | |||
*: <br> | |||
*: トランジションでは、<code>ViewTransition</code>を使用して、移動されるアイテムの詳細にアクセスすることができる。 | |||
*: <br> | |||
*: <u>※注意</u> | |||
*: <u>ただし、<code>move</code>プロパティでは、<code>ViewTransition.targetIndexes</code>プロパティと<code>ViewTransition.targetItems</code>プロパティは、</u> | |||
*: <u>ポジショナーに他のアイテムが追加されて、<code>move</code>プロパティがトリガーされた場合にのみ設定される。</u> | |||
*: <u>それ以外の場合は、これらのリストは空になる。</u> | |||
*: <br> | |||
*: これらのトランジションの詳細や使用例については、<code>ViewTransition</code>のドキュメントを参照すること。 | |||
*: また、<code>add</code>プロパティ、<code>populate</code>プロパティも参照すること。 | |||
*: <br> | |||
* populate | |||
*: 値 : Transition型 | |||
*: ポジショナーの作成時に、このポジショナーの一部であるアイテムに対して実行されるトランジションを設定する。 | |||
*: <code>populate</code>プロパティは、ポジショナーが最初に作成された時に実行される。 | |||
*: <br> | |||
*: <code>populate</code>プロパティは、<code>ViewTransition</code>を使用して追加されるアイテムの詳細情報にアクセスできる。 | |||
*: <br> | |||
*: これらのトランジションの詳細や使用例については、<code>ViewTransition</code>のドキュメントを参照すること。 | |||
*: また、<code>add</code>プロパティも参照すること。 | |||
<br> | |||
==== シグナル ==== | |||
* positioningComplete() | |||
*: このシグナルは、位置決めが完了した時に発行する。 | |||
*: <br> | |||
*: <u>※注意</u> | |||
*: <u>対応するハンドラは <code>onPositioningComplete()</code>である。</u> | |||
*: <br> | |||
*: このシグナルは、Qt 5.9で導入された。 | |||
<br> | |||
==== メソッド ==== | |||
* forceLayout() | |||
*: <code>Row</code>は、通常、フレームごとに1度だけ子プロセスを配置する。 | |||
*: <br> | |||
*: スクリプト内では、下層の子アイテムが変更されても、<code>Row</code>がまだ更新されていない可能性がある。 | |||
*: しかし、<code>forceLayout</code>メソッドは、<code>Row</code>が子アイテムの変更に即座に対応することを強制する。 | |||
*: <br> | |||
*: <u>※注意</u> | |||
*: <u>一般的に、<code>forceLayout</code>メソッドは、コンポーネントが完了してから呼び出すべきである。</u> | |||
*: <br> | |||
*: このメソッドは、Qt 5.9で導入された。 | |||
<br> | |||
==== サンプルコード ==== | |||
<code>Row</code>は、子アイテムを1つの行に沿って配置する。<br> | |||
<code>anchors</code>プロパティを使用せずに、一連のアイテムを水平方向に配置する便利な方法として使用できる。<br> | |||
<br> | |||
以下の例では、様々なサイズの3つの矩形を含む<code>Row</code>を作成している。<br> | |||
実行結果として、<code>Row</code>は、自動的にこれらのアイテムを横に並べて配置する。<br> | |||
[[ファイル:QML Row 1.png|フレームなし|中央]] | |||
<syntaxhighlight lang="qml"> | |||
Row { | |||
spacing: 2 | |||
Rectangle { | |||
color: "red" | |||
width: 50 | |||
height: 50 | |||
} | |||
Rectangle { | |||
color: "green" | |||
width: 20 | |||
height: 50 | |||
} | |||
Rectangle { | |||
color: "blue" | |||
width: 50 | |||
height: 20 | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
<code>Row</code>内のアイテムが表示されていない場合、または、幅や高さが0の場合は、そのアイテムはレイアウトされずに<code>Row</code>内に表示されない。<br> | |||
<br> | |||
また、<code>Row</code>は自動的に子アイテムを水平方向に配置するため、<br> | |||
<code>Row</code>内の子アイテムはx位置を設定したり、<code>left</code>、<code>right</code>、<code>anchors.horizontalCenter</code>、<code>fill</code>、<code>centerIn</code>等のアンカーを使用して水平方向に固定してはならない。<br> | |||
もし、上記の動作を行う必要がある場合は、<code>Row</code>を使用せずにアイテムを配置する。<br> | |||
<br> | |||
なお、<code>Row</code>内のアイテムは<code>Positioner</code>を使用して、<code>Row</code>内の位置に関する詳細情報にアクセスできる。<br> | |||
<br> | |||
<code>Row</code>やその他の関連するポジショナの使用方法については、[[QMLのコントロール - Positioner|Positioner]]を参照する。<br> | |||
また、<code>Column</code>、<code>Grid</code>、<code>Flow</code>、<code>RowLayout</code>も参照すること。<br> | |||
<br><br> | <br><br> | ||
== RowLayout == | == RowLayout == | ||
==== | ==== 専用プロパティ ==== | ||
* layoutDirection | * layoutDirection | ||
*: 値 : Qt.LeftToRight( | *: 値 : enumeration (既定値 : Qt.LeftToRight) | ||
*: | *: このプロパティは、アイテムを左から右にレイアウト、または、右から左にレイアウトするかどうかを制御する。(<u>QtQuick.Layouts 1.1</u>で導入された) | ||
*: | *: <br> | ||
*: | *: 既定値のQt.LeftToRightは、アイテムを左から右に配置する。 | ||
*: 値にQt.RightToLeftを指定する場合、アイテムを右から左に向かって配置する。 | |||
*: また、<code>Qt.RightToLeft</code>が指定されている場合、左揃えのアイテムは右揃えになり、右揃えのアイテムは左揃えになる。<br> | |||
*: <br> | |||
*: <code>RowLayout</code>、<code>ColumnLayout</code>、<code>GridLayout</code>には、<code>layoutDirection</code>プロパティが存在する。<br> | |||
*: <br> | *: <br> | ||
* spacing | * spacing | ||
| 19行目: | 160行目: | ||
*: 各セルの間隔を保持する。 | *: 各セルの間隔を保持する。 | ||
<br> | <br> | ||
<code> | ==== プロパティ ==== | ||
<code>RowLayout</code>は、以下のプロパティもサポートしている。<br> | |||
* Layout.minimumWidth | * Layout.minimumWidth | ||
*: 値 : real型 (既定値 : アイテムの暗黙の最小幅) | *: 値 : real型 (既定値 : アイテムの暗黙の最小幅) | ||
| 149行目: | 289行目: | ||
==== サンプルコード ==== | ==== サンプルコード ==== | ||
以下の例は、<code>RowLayout</code>のサンプルコードである。<br> | |||
[[ファイル:QML RowLayout 1.png|フレームなし|中央]] | |||
<syntaxhighlight lang="qml"> | <syntaxhighlight lang="qml"> | ||
RowLayout { | RowLayout { | ||
| 155行目: | 296行目: | ||
anchors.fill: parent | anchors.fill: parent | ||
spacing: 6 | spacing: 6 | ||
Rectangle { | Rectangle { | ||
color: 'teal' | color: 'teal' | ||
| 162行目: | 304行目: | ||
Layout.maximumWidth: 300 | Layout.maximumWidth: 300 | ||
Layout.minimumHeight: 150 | Layout.minimumHeight: 150 | ||
Text { | Text { | ||
anchors.centerIn: parent | anchors.centerIn: parent | ||
| 174行目: | 317行目: | ||
Layout.preferredWidth: 200 | Layout.preferredWidth: 200 | ||
Layout.preferredHeight: 100 | Layout.preferredHeight: 100 | ||
Text { | Text { | ||
anchors.centerIn: parent | anchors.centerIn: parent | ||