Qt Quick Layouts中fillWidth和fillHeight属性
Layout.fillWidth和Layout.fillHeight属性If this property is true, the item will be as wide as possible while respecting the given constraints. If the property is false, the item will have a fixed width set to the preferred width. The default is false, except for layouts themselves, which default to true.
minimumWidth(minimumHeight):缩小窗口后,该组件的宽度(高度)不会小于此宽度
maximumWidth(maximumHeight):放大窗口后,该组件的宽度(高度)不会大于此宽度
eg:
import QtQuick 2.5
import QtQuick.Layouts 1.2
RowLayout {
id: layout
anchors.fill: parent
spacing: 6
Rectangle {
color: 'azure'
Layout.fillWidth: true
Layout.minimumWidth: 50
Layout.preferredWidth: 100
Layout.maximumWidth: 300
Layout.minimumHeight: 150
Text {
anchors.centerIn: parent
text: parent.width + 'x' + parent.height
}
}
Rectangle {
color: 'plum'
Layout.fillWidth: true
Layout.minimumWidth: 100
Layout.preferredWidth: 200
Layout.preferredHeight: 100
Text {
anchors.centerIn: parent
text: parent.width + 'x' + parent.height
}
}
}
参考:
Qt Quick Layouts Overview
Layouts Eample
import QtQuick 2.5
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.2
ApplicationWindow {
visible: true
title: "Basic layouts"
ColumnLayout {
id: mainLayout
anchors.fill: parent
anchors.margins: 11
GroupBox {
title: "Row layout"
Layout.fillWidth: true
RowLayout {
anchors.fill: parent
TextField {
placeholderText: "This wants to grow horizontally"
Layout.fillWidth: true
}
Button {
text: "Button"
}
}
}
GroupBox {
title: "Grid layout"
Layout.fillWidth: true
GridLayout {
anchors.fill: parent
rows: 3
flow: GridLayout.TopToBottom
Label {text: "Line1"}
Label {text: "Line2"}
Label {text: "Line3"}
TextField {}
TextField {}
TextField {}
TextArea {
text: "fill"
Layout.rowSpan: 3
Layout.fillHeight: true
Layout.fillWidth: true
}
}
}
TextArea {
text: "This fills the whole cell"
Layout.minimumHeight: 30
Layout.fillHeight: true
Layout.fillWidth: true
}
}
}
页:
[1]