GroupBox内部边距

时间:2015-07-25 14:05:27

标签: qt qml qtquick2

我将label2groupBox2的边距设置为相对于内部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 } } } 的内部边距是多少?

enter image description here

{{1}}

1 个答案:

答案 0 :(得分:4)

GroupBox具有定义内部边距的样式,其大小取决于运行程序的平台。

在qt安装目录中查看GroupBox样式,例如/path_to_installation/Qt5.5.0/5.5/Src/qtquickcontrols/src/controls/Styles/Base/GroupBoxStyle.qml,各种平台的子目录中也有自定义样式:Desktop/GroupBoxStyle.qmlWinRT/PC/GroupBoxStyle.qmliOS/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.styleGroupBoxStyle.qml被标记为内部,因此在更新Qt时要小心,可以在将来的Qt版本中更改它们而不发出警告,使用它的代码可能会停止工作。

因此,要设置不同的边距大小,您可以将GroupBoxStyle.qml复制到项目中并使用它:

GroupBox {
    style: GroupBoxStyle {
        padding.left: 0 //your desired padding value
    }
}