搜索了一段时间后,我发现在组框上设置可见边框的方法是使用 StyleSheet 属性。我补充道:
border: 2px solid gray;
但是有几个问题。
1)组框内的所有内容也继承此设置!
2)边框在标题附近有一个小洞/碎片缺失。
这是我正在谈论的内容的图片:
有人知道如何正确执行此操作吗?
谢谢,
大卫
第一个问题很简单,当您将样式表添加到控件时,它会自动将样式传播到所有子窗口小部件。但是,您可以通过多种方式限制样式表的使用。您可以指定要应用样式表的控件类型。示例:
QGroupBox {
border: 2px solid gray;
border-radius: 3px;
}
此样式表仅在组框中设置。但是,如果您将第二个组框放入该组框内,则样式也会传播到该组框。这可能是好是坏。
另一种方法是专门指定要应用样式的小部件的 objectName。示例:
QGroupBox#MyGroupBox {
border: 2px solid gray;
border-radius: 3px;
}
这只会将样式应用于对象名称为 MyGroupBox 的组框。
至于空间,它发生是因为标题被绘制在边框的顶部。您还可以在样式表中添加一个部分来更改组框标题。这包括将其背景设置为透明,并将标题移动到您想要的内容。
示例:这会将您的标题设置为边框内分组框的左上角,没有间隙。
QGroupBox::title {
background-color: transparent;
subcontrol-position: top left; /* position at the top left*/
padding:2 13px;
}
这对我在 Qt 5.1 上有用。
qApp->setStyleSheet("QGroupBox { border: 1px solid gray;}");
埃利梅莱克
要解决groupbox标题下沉的问题,试试这个
QGroupBox {
border: 1px solid rgb(182, 182, 182);
margin: 10px
}
QGroupBox::title {
left: 10px;
top: -8px;
}