2017-06-25 1 views
0

Qt 5.9でQMLを使用している場合、Flowに固定幅のRectangleを表示したいと思います。レイアウトを中央に保つために、パディングを動的に調整しようとします。現在の列数を知る必要がありますが、適切な値を計算するには、colCountと言ってください。それを得る方法はありますか?ここでQMLでのフロー内の列の数

は私がCOLCOUNT擬似変数を使用してやりたいもののコード例です:

import QtQuick 2.7 
import QtQuick.Controls 2.2 
import QtQuick.Layouts 1.3 

ApplicationWindow { 
    visible: true 
    width: 800 
    height: 600 
    title: qsTr("Example") 

    Flow { 
     anchors.fill: parent 
     leftPadding: parent.width > 200*colCount ? 0.5*(parent.width - 200*colCount) : 0 
     spacing: 0 

     Rectangle { 
      width: 200 
      height: 200 
      color: "red" 
     } 

     Rectangle { 
      width: 200 
      height: 200 
      color: "blue" 
     } 
    } 
} 

答えて

0

私はそれを把握するために管理してきたと私は投稿して間もなく:)投稿の魔法それを必要とするかもしれない誰かのための解決策。

の項目から継承されたプロパティchildrenRect.widthがあります。これは便利な機能です。したがって、列数はです.ColCountchildrenRect.width/wと計算されます。wは子の幅です(これはFLOWのすべての子が同じでなければなりません)。

import QtQuick 2.7 
import QtQuick.Controls 2.2 
import QtQuick.Layouts 1.3 

ApplicationWindow { 
    visible: true 
    width: 800 
    height: 600 
    title: qsTr("Example") 

    Flow { 
     anchors.fill: parent 
     leftPadding: parent.width > childrenRect.width ? 0.5*(parent.width - childrenRect.width) : 0 
     spacing: 0 

     Rectangle { 
      width: 200 
      height: 200 
      color: "red" 
     } 

     Rectangle { 
      width: 200 
      height: 200 
      color: "blue" 
     } 
    } 
} 
:質問からのコード例で

関連する問題