我将label2
和groupBox2
的边距设置为相对于内部label
的零。从图片中可以看出,groupBox2
位于label2
的边界,而GroupBox
具有额外的边距。
GroupBox {
id: groupBox1
x: 5
y: 302
width: 142
height: 90
checked: false
flat: false
title: qsTr("Group Box")
Label {
id: label
text: qsTr("Label")
anchors.top: parent.top
anchors.topMargin: 0
anchors.left: groupBox2.left
anchors.leftMargin: 0
}
GroupBox {
id: groupBox2
y: 16
height: 45
anchors.bottom: parent.bottom
anchors.bottomMargin: 0
anchors.right: parent.right
anchors.rightMargin: 0
anchors.left: parent.left
anchors.leftMargin: 0
title: qsTr("Group Box2")
Label {
id: label2
text: qsTr("Label2")
anchors.left: parent.left
anchors.leftMargin: 0
}
}
}
的内部边距是多少?
{{1}}
答案 0 :(得分:4)
GroupBox
具有定义内部边距的样式,其大小取决于运行程序的平台。
在qt安装目录中查看GroupBox
样式,例如/path_to_installation/Qt5.5.0/5.5/Src/qtquickcontrols/src/controls/Styles/Base/GroupBoxStyle.qml
,各种平台的子目录中也有自定义样式:Desktop/GroupBoxStyle.qml
,WinRT/PC/GroupBoxStyle.qml
,iOS/GroupBoxStyle.qml
等。
以下是Base/GroupBoxStyle.qml
的部分内容:
/*! The margin from the content item to the groupbox. */
padding {
top: (control.title.length > 0 || control.checkable ? TextSingleton.implicitHeight : 0) + 10
left: 8
right: 8
bottom: 6
}
因此,在您的情况下,左边距可能设置为8
。
GroupBox
具有未记录的属性style
,可用于设置自定义样式。 GroupBox.style
和GroupBoxStyle.qml
被标记为内部,因此在更新Qt时要小心,可以在将来的Qt版本中更改它们而不发出警告,使用它的代码可能会停止工作。
因此,要设置不同的边距大小,您可以将GroupBoxStyle.qml
复制到项目中并使用它:
GroupBox {
style: GroupBoxStyle {
padding.left: 0 //your desired padding value
}
}