QGroupBox边框

时间:2010-11-29 16:58:47

标签: qt qt4

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

border: 2px solid gray;

但有一些问题。

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

2)边界标题附近有一个小洞/小块。

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

任何人都知道如何正确地做到这一点?

谢谢,

大卫

3 个答案:

答案 0 :(得分:32)

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

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 :(得分:1)

这在Qt 5.1上对我有用。

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

Elimeléc

答案 2 :(得分:0)

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

QGroupBox
{
     border: 2px solid gray;
}

至于差距,你可以通过设置一些填充来解决这个问题。 Check the docs here