2016-02-22 6 views
8

は例えば、これは動作します:Qt5 QMLでは、ColumnLayoutとColumnを使用するのはいつですか?

import QtQuick 2.5 
import QtQuick.Controls 1.4 
import QtQuick.Controls.Styles 1.4 
import QtQuick.Layouts 1.2 

ApplicationWindow 
{ 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    function thingWidth() 
    { 
     return width*80/100 
    } 

    Column 
    { 
     spacing: 10; 
     anchors.horizontalCenter: parent.horizontalCenter 

     Thing { color: "red"; width: thingWidth(); } 
     Thing { color: "yellow"; width: thingWidth(); } 
     Thing { color: "green"; width: thingWidth(); } 
    } 

} 

しかしColumnLayoutからColumnを変更し、そうではありません(ウィンドウのサイズを変更することは間違って行くために、レイアウトの原因となる)ん。

ありがとうございました。

EDIT 1:要求されたとして

は、ここに私のポストは、ほとんどのコードであるように見え、また

import QtQuick 2.0 

Item { 
    property alias color: rectangle.color 
    width: 50; height: 50 

    Rectangle 
    { 
     id: rectangle 
     border.color: "white" 
     anchors.fill: parent 
    } 
} 

Thing.qmlです。はい、こんにちは!それは人々がここにコードを投稿するからです。 Columndocumentationからも

+1

a)「Thing」のコードを提供するか、またはb)「Rectangle」のようにアクセスできるもので置き換えてください。 – Mitch

+0

が完了しました。お母さんについてごめんね –

答えて

3

列は、単一の列に沿ってその子項目を配置するタイプです。アンカーを使用せずに一連のアイテムを垂直に配置する便利な方法として使用できます。

さらに、挿入、削除などの間に遷移を緩和します。また、項目にはpropertiesが添付され、その位置についての考え方が与えられます。他の側では

thisGridLayoutのドキュメント(してください、そのdocumentationからと、ColumnLayoutは便利なユーティリティですが、それは一つの列を持つグリッド以外の何物でもないことに注意してください)です。
これは完全に異なるプロパティセットと添付プロパティを持ち、アイテムの配置に完全に対応しています。

とにかく、ドキュメントの中で最も興味深いページはthatです。
私は単にそれを引用:

ポジショナー項目は、宣言型ユーザーインターフェース内の項目の位置を管理するコンテナのアイテムです。ポジショナーは、標準的なQtウィジェットで使用されるレイアウトマネージャーと同様に動作しますが、それ以外のコンテナでもあります。

ポジショナーを使用すると、通常のレイアウトで配置する必要があるときに、多くのアイテムを扱いやすくなります。

Qtクイックレイアウトを使用して、Qtクイックアイテムをユーザーインターフェイスに配置することもできます。彼らは、宣言的なユーザーインターフェイス上のアイテムの位置とサイズの両方を管理し、サイズ変更可能なユーザーインターフェイスに適しています。

してくださいは、ColumnLayoutLayoutている間Columnは、Positionerであることに注意してください。いつそれらを使用するかは、主にあなたの目標に左右されます。

+1

あなたの答えをありがとう。私が理解するように、 'Column'のようなポジショナーはポジションを伝えることができますが、' ColumnLayout'のようなレイアウトはポジションを計算する必要があります。 'ColumnLayout'の中の' width'を設定するのは悪いですが、 'Column'では大丈夫です。 –

+1

レイアウト内には、 'Layout.preferredwidth'という面白い添付プロパティがたくさんあります。リンクされたドキュメントを参照してください。 – skypjack

+0

Qtはサイズが非常に異なるスクリーンをサポートしなければならないと、つまりノキア時代の後にレイアウトが追加されました。実際には、他の実装では欠けている 'fill'プロパティがあります。また、ドキュメントには、「サイズ変更可能な**ユーザインタフェースに適している」と書かれていることも強調されています。 – BaCaRoZzo

関連する問題