たとえば、これは機能します。
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(); }
}
}
ただし、Column
をColumnLayout
に変更すると、変更されません(ウィンドウのサイズを変更すると、レイアウトが正しく機能しなくなります)。
助けてくれてありがとう。
編集1:
こちらもThing.qml
要求に応じて、
import QtQuick 2.0
Item {
property alias color: rectangle.color
width: 50; height: 50
Rectangle
{
id: rectangle
border.color: "white"
anchors.fill: parent
}
}
私の投稿はほとんどコードのようです。はい、乳母はそうします!これは、人々がここにコードを投稿するためです。
documentation of Column
から:
列は、子アイテムを単一の列に沿って配置するタイプです。アンカーを使用せずに一連のアイテムを垂直に配置する便利な方法として使用できます。
さらに、挿入、削除などの際の遷移を容易にします。また、アイテムに properties を添付して、アイテムの位置についての概念を提供します。
一方、 this はGridLayout
のドキュメントです(ColumnLayout
は便利なユーティリティですが、1列のグリッドにすぎないことに注意してください) 、その ドキュメント からのように。
完全に異なるプロパティのセットと、アイテムの配置に完全に合わせた添付プロパティがあります。
とにかく、ドキュメントから最も興味深いページは that 1つだと思います。
私は単にそれを引用します:
ポジショナーアイテムは、宣言型ユーザーインターフェイスでアイテムの位置を管理するコンテナーアイテムです。ポジショナーは、それ自体がコンテナーでもあることを除いて、標準のQtウィジェットで使用されるレイアウトマネージャーと同じように動作します。
ポジショナーを使用すると、通常のレイアウトで配置する必要がある場合に、多くのアイテムを簡単に操作できます。
Qtクイックレイアウトを使用して、ユーザーインターフェースにQtクイックアイテムを配置することもできます。これらは、宣言型ユーザーインターフェイス上のアイテムの位置とサイズの両方を管理し、サイズ変更可能なユーザーインターフェイスに最適です。
Column
はPositioner
であり、ColumnLayout
はLayout
であることに注意してください。それらをいつ使用するかは、いつものように、主にあなたの目標に依存します。