QGroupBox 边框

问题描述 投票:0回答:4

搜索了一段时间后,我发现在组框上设置可见边框的方法是使用 StyleSheet 属性。我补充道:

border: 2px solid gray;

但是有几个问题。

1)组框内的所有内容也继承此设置!

2)边框在标题附近有一个小洞/碎片缺失。

这是我正在谈论的内容的图片: alt text

有人知道如何正确执行此操作吗?

谢谢,

大卫

qt qt4
4个回答
35
投票

第一个问题很简单,当您将样式表添加到控件时,它会自动将样式传播到所有子窗口小部件。但是,您可以通过多种方式限制样式表的使用。您可以指定要应用样式表的控件类型。示例:

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;
 } 

1
投票

这对我在 Qt 5.1 上有用。

qApp->setStyleSheet("QGroupBox {  border: 1px solid gray;}");

埃利梅莱克


0
投票

指定组框样式的选择器,例如:

QGroupBox
{
     border: 2px solid gray;
}

至于间隙,您可以通过设置一些填充来修复。 在此处查看文档


0
投票

要解决groupbox标题下沉的问题,试试这个

QGroupBox {
    border: 1px solid rgb(182, 182, 182);
    margin: 10px
}

QGroupBox::title {
    left: 10px;
    top: -8px;
}
© www.soinside.com 2019 - 2024. All rights reserved.