我正在使用Qt qml
来设计一个非常简单的用户界面。 QML如下:
import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.4
Rectangle {
width: 800; height: 600
ColumnLayout {
anchors.centerIn: parent
spacing: 25
TextField {
placeholderText: qsTr("User name")
width: 200
}
TextField {
placeholderText: qsTr("Password")
width: 200
echoMode: TextInput.Password
}
RowLayout {
Button {
text: "Log In"
}
Button {
text: "Cancel"
}
}
}
}
我要做的是确保两个按钮的大小相同,并且它们与TextField
组件水平占据相同的空间量。是否可以使用QML实现这一目标?
答案 0 :(得分:1)
只需将布局调整为所需宽度,然后使用附加属性Layout.fillWidth: true
扩展/缩小项目的大小。刚刚更新了您的示例以说明:
import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.4
Rectangle {
width: 800; height: 600
ColumnLayout {
width: 200
anchors.centerIn: parent
spacing: 25
TextField {
placeholderText: qsTr("User name")
Layout.fillWidth: true
}
TextField {
placeholderText: qsTr("Password")
Layout.fillWidth: true
echoMode: TextInput.Password
}
RowLayout {
Button {
text: "Log In"
Layout.fillWidth: true
}
Button {
text: "Cancel"
Layout.fillWidth: true
}
}
}
}
PS:在默认情况下设置Layout.fillWidth
和Layout.fillHeight
的子布局中不需要它。
如果您对此有任何疑问,请随时提出......
答案 1 :(得分:0)
是的,您只需要向AControl
id
即可
TextField
并引用TextField {
id: myTextField
...
}
中TextField
的宽度:
Button