MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
QMLのコントロール - RowとRowLayoutのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
QMLのコントロール - RowとRowLayout
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <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> == RowLayout == ==== 専用プロパティ ==== * layoutDirection *: 値 : 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> * spacing *: 値 : real型 (既定値 : 5) *: 各セルの間隔を保持する。 <br> ==== プロパティ ==== <code>RowLayout</code>は、以下のプロパティもサポートしている。<br> * Layout.minimumWidth *: 値 : real型 (既定値 : アイテムの暗黙の最小幅) *: レイアウト内のアイテムの最小幅を設定する。 *: アイテムがレイアウトである場合、暗黙の最小幅は、どの項目もその最小幅よりも縮小することなくレイアウトが持つことができる最小幅になる。 *: (その他のアイテムにおける暗黙の最小幅は0である) *: この値を<code>-1</code>に設定する場合、暗黙的な最小幅にリセットされる。 *: <code>preferredWidth</code>プロパティおよび<code>maximumWidth</code>プロパティも参照すること。 *: <br> * Layout.minimumHeight *: 値 : real型 (既定値 : アイテムの暗黙の最小の高さ) *: レイアウト内のアイテムの最小の高さを設定する。 *: アイテムがレイアウトである場合、暗黙の最小の高さは、どのアイテムもその最小高さよりも縮小することなく、レイアウトが持つことのできる最小の高さになる。 *: (その他のアイテムの暗黙の最小の高さは0である) *: この値を<code>-1</code>に設定する場合、高さが暗黙の最小値にリセットされる。 *: <code>preferredHeight</code>プロパティと<code>maximumHeight</code>プロパティも参照すること。 *: <br> * Layout.preferredWidth *: 値 : real型 (既定値 : -1) *: レイアウト内のアイテムの優先幅を設定する。 *: 値が<code>-1</code>の場合、preferredWidthプロパティは無視されて、implicitWidthプロパティを使用する。 *: <code>minimumWidth</code>プロパティと<code>maximumWidth</code>プロパティも参照すること。 *: <br> * Layout.preferredHeight *: 値 : real型 (既定値 : -1) *: レイアウト内のアイテムの優先する高さを設定する。 *: 値が-1の場合、preferredWidthプロパティは無視されて、implicitHeightプロパティを使用する。 *: <code>minimumHeight</code>プロパティと<code>maximumHeight</code>プロパティも参照すること。 *: <br> * Layout.maximumWidth *: 値 : real型 (既定値 : アイテムの暗黙の最大幅) *: レイアウト内のアイテムの最大幅を設定する。 *: アイテムがレイアウトの場合、暗黙の最大幅は、レイアウトが最大幅を超えることなくレイアウトが持つことができる最大幅になる。 *: この値を<code>-1</code>に設定すると、幅が暗黙の最大幅にリセットされる。 *: <br> *: レイアウト以外の場合、暗黙の最大幅は、<code>Number.POSITIVE_INFINITY</code>である。 *: <code>minimumWidth</code>プロパティおよび<code>preferredWidth</code>プロパティも参照すること。 *: <br> * Layout.maximumHeight *: 値 : real型 (既定値 : アイテムの暗黙の最大の高さ) *: レイアウト内のアイテムの最大幅を設定する。 *: アイテムがレイアウトの場合、暗黙の最大の高さは、どのアイテムも最大の高さを超えずにレイアウトが持てる最大の高さになる。 *: この値を<code>-1</code>に設定する場合、高さは暗黙の最大の高さにリセットされる。 *: <br> *: レイアウト以外の場合、暗黙の最大の高さは、<code>Number.POSITIVE_INFINITY</code>である。 *: <code>minimumHeight</code>プロパティと<code>preferredHeight</code>プロパティも参照すること。 *: <br> * Layout.fillWidth *: 値 : bool型 (レイアウトの既定値 : true, レイアウト内のアイテムの既定値 : false) *: このプロパティが<code>true</code>の場合、レイアウト内のアイテムは、与えられた制約を尊重しながら可能な限り広くなる。 *: このプロパティが<code>false</code>の場合、レイアウト内のアイテムは、望ましい幅に設定された固定幅を持つ。 *: <br> *: レイアウト内のアイテムの既定値は<code>false</code>であるが、レイアウト自体の既定値は<code>true</code>である。 *: <code>fillHeight</code>プロパティも参照すること。 *: <br> * Layout.fillHeight *: 値 : bool型 (レイアウトの既定値 : true, レイアウト内のアイテムの既定値 : false) *: このプロパティが<code>true</code>の場合、レイアウト内のアイテムは、与えられた制約を尊重しながら可能な限り高さが高くなる。 *: このプロパティが<code>false</code>の場合、レイアウト内のアイテムは、望ましい高さに設定された固定の高さを持つ。 *: <br> *: レイアウト内のアイテムの既定値は<code>false</code>であるが、レイアウト自体の既定値は<code>true</code>である。 *: <code>fillWidth</code>プロパティも参照すること。 *: <br> * Layout.alignment *: 値 : Qt.Alignment型 (既定値 : 0 … 0とは、<code>Qt.AlignVCenter | Qt.AlignLeft</code>のこと) *: アイテムが占めるセル内の配置を指定する。 *: 既定値は、水平フラグまたは垂直フラグのみが指定された場合にも適用される。 *: 水平フラグのみが指定された場合でも、自動的に垂直フラグが<code>Qt.AlignVCenter</code>に設定される。 *: 垂直フラグのみが指定された場合でも、自動的に水平フラグが<code>Qt.AlignLeft</code>に設定される。 *: <br> *: 以下に、使用できるフラグを示す。 *:* Qt.AlignLeft *:* Qt.AlignHCenter *:* Qt.AlignRight *:* Qt.AlignTop *:* Qt.AlignVCenter *:* Qt.AlignBottom *:* Qt.AlignBaseline *: <br> * Layout.margins *: 値 : real型 (既定値 : 0) *: アイテムの外側の余白をすべて同じ値に設定する。 *: アイテム自体は自身のマージンを評価しない。マージンを評価するかどうかは、親アイテムが決定する。 *: <br> *: 具体的には、マージンが評価されるのは、<code>ColumnLayout</code>、<code>RowLayout</code>、<code>GridLayout</code>、<code>SplitView</code>等のレイアウトであり、マージンが大きくなるとアイテムの有効セルサイズが大きくなる。 *: したがって、マージンを持つアイテムが他のアイテムの子である場合、その位置、サイズ、暗黙のサイズは変更されない。 *: <br> *: <code>margins</code>と<code>alignment</code>を組み合わせる場合、<code>margins</code>プロパティの値を含めてアイテムの位置を合わせる。 *: 例えば、上のマージンが1、下のマージンが9の垂直方向に中央に配置されたアイテムの場合、セル内でのアイテムの配置は、中央から4ピクセル上となる。 *: <br> *: このプロパティは、QtQuick.Layouts 1.2で導入された。 *: <code>leftMargin</code>プロパティ、<code>topMargin</code>プロパティ、<code>rightMargin</code>プロパティ、<code>bottomMargin</code>プロパティも参照すること。 *: <br> * Layout.topMargin *: 値 : real型 (既定値 : <code>Layout.margins</code>の値) *: アイテムの外側にある上の余白を設定する。 *: 値が設定されていない場合は、<code>Layout.margins</code>の値を使用する。 *: <br> *: このプロパティは、QtQuick.Layouts 1.2で導入された。 *: <code>margins</code>プロパティも参照すること。 *: <br> * Layout.bottomMargin *: 値 : real型 (既定値 : <code>Layout.margins</code>の値) *: アイテムの外側にある下の余白を設定する。 *: 値が設定されていない場合は、<code>Layout.margins</code>の値を使用する。 *: <br> *: このプロパティは、QtQuick.Layouts 1.2で導入された。 *: <code>margins</code>プロパティも参照すること。 *: <br> * Layout.leftMargin *: 値 : real型 (既定値 : <code>Layout.margins</code>の値) *: アイテムの外側にある左の余白を設定する。 *: 値が設定されていない場合は、<code>Layout.margins</code>の値を使用する。 *: <br> *: このプロパティは、QtQuick.Layouts 1.2で導入された。 *: <code>margins</code>プロパティも参照すること。 *: <br> * Layout.rightMargin *: 値 : real型 (既定値 : <code>Layout.margins</code>の値) *: アイテムの外側にある右の余白を設定する。 *: 値が設定されていない場合は、<code>Layout.margins</code>の値を使用する。 *: <br> *: このプロパティは、QtQuick.Layouts 1.2で導入された。 *: <code>margins</code>プロパティも参照すること。 *: <br> <br> ==== サンプルコード ==== 以下の例は、<code>RowLayout</code>のサンプルコードである。<br> [[ファイル:QML RowLayout 1.png|フレームなし|中央]] <syntaxhighlight lang="qml"> RowLayout { id: layout anchors.fill: parent spacing: 6 Rectangle { color: 'teal' Layout.fillWidth: true Layout.minimumWidth: 50 Layout.preferredWidth: 100 Layout.maximumWidth: 300 Layout.minimumHeight: 150 Text { anchors.centerIn: parent text: parent.width + 'x' + parent.height } } Rectangle { color: 'plum' Layout.fillWidth: true Layout.minimumWidth: 100 Layout.preferredWidth: 200 Layout.preferredHeight: 100 Text { anchors.centerIn: parent text: parent.width + 'x' + parent.height } } } </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Qt]]
QMLのコントロール - RowとRowLayout
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse