2017-09-18 37 views
0

私はそれらのすべてが同じ幅(または高さ)を取得する場所parent.width/number_of_childrenに行(または列)に等しいいくつかの項目を配置する必要があります。それを自動的に行うコンテナはありますか?QMLコンテナが等間隔

WPFでシミュレートするには、のGrid.ColumnDefinition宣言でグリッドを作成し、各子のColumnプロパティを設定します。 QMLでそれを行う方法

+1

はあまりにも完全に罰金です。アイテムを一列に並べれば、あなたは設定されます。 – dtech

答えて

3

使用RowLayout

import QtQuick 2.8 
import QtQuick.Layouts 1.3 
import QtQuick.Window 2.2 

Window { 
    visible: true 
    width: 400 
    height: 400 

    RowLayout { 
     width: 200 
     height: 32 
     spacing: 0 
     anchors.centerIn: parent 

     Rectangle { 
      color: "salmon" 
      Layout.fillWidth: true 
      Layout.fillHeight: true 
     } 
     Rectangle { 
      color: "navajowhite" 
      Layout.fillWidth: true 
      Layout.fillHeight: true 
     } 
     Rectangle { 
      color: "steelblue" 
      Layout.fillWidth: true 
      Layout.fillHeight: true 
     } 
    } 
} 

screenshot

各項目は、できるだけ多くのスペースを取り、各項目は、それが設定されているので、彼らはすべてのスペースの同じ量を取るようになりますLayout.fillWidth: trueを設定します。 fillWidthため

ドキュメントは言う:

このプロパティがtrueの場合 は、与えられた制約を尊重しつつ、アイテムはできるだけ広いとなります。プロパティがfalseの場合、アイテム が好ましい幅に設定された固定幅を持つことになります。デフォルトは です。ただし、レイアウト自体は例外です。デフォルトはtrueです。 `parent.width/number_of_children`を使用して

+0

私はその承知しているが、あなたは 'Layout.fillWidth設定する必要があること(少なくともQtの5.6.2のように)生臭い何かがあったので、それを使用していませんでした:のみ1人の子供のためのtrue'をが。あなたはそれについて何かを知っていますか、それとも私の想像ですか? (さもなければ - はい、これが私の必要なものです) – Ribtoks

+1

いいえ、私はそのようなことは覚えていません。 – Mitch

関連する問題