[〜#〜] qml [〜#〜] で、すべての子が要素に収まるように要素を自動的に拡大するにはどうすればよいですか?そして、間隔を指定する方法は?たとえば、テキストの周りに長方形を作成したいとします。長方形には、ある程度の内部間隔が必要です。
次のように書くと、長方形のサイズは0,0になります。
Rectangle {
color: "gray"
anchors.centerIn: parent;
Text {
text: "Hello"
}
}
QMLアイテムをコンテンツに合わせて拡大する方法で提案されているように、Column
要素を使用して修正しようとすると、次にウィンドウ/親全体に列が表示されます。
Column {
anchors.centerIn: parent
Rectangle {
color: "gray"
anchors.fill: parent
}
Text {
anchors.centerIn: parent
text: "Hello"
}
}
編集:
また、Flow
の代わりにColumn
要素を使用しようとしましたが、ウィンドウ/親全体に行が表示されました。
これには childrenRect
プロパティを使用できます。
import QtQuick 1.1
Rectangle {
width: 320
height: 200
Rectangle {
color: "BurlyWood"
anchors.centerIn: parent
width: childrenRect.width + 20
height: childrenRect.height + 20
Text {
id: hello
x: 10
y: 10
text: "Hello"
}
Text {
anchors.left: hello.right
anchors.leftMargin: 10
anchors.top: hello.top
text: "World"
}
}
}
ただし、直接の子の1つでchildrenRect
をanchors.centerIn: parent
と組み合わせて使用すると、バインディングループに関する警告が表示されることに注意してください。
width
とheight
の設定は手動で機能しますが、少し見苦しいです。
Rectangle {
color: "gray"
width: label.width+20
height: label.height+20
anchors.centerIn: parent
Text {
id: label
anchors.centerIn: parent
text: "Hello"
}
}