QGroupBox边框

Dav*_*ria 17 qt qt4

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

border: 2px solid gray;
Run Code Online (Sandbox Code Playgroud)

但是有一些问题.

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

2)边界在标题附近有一个小洞/小块丢失.

这是我正在谈论的图片: 替代文字

谁知道如何正确地做到这一点?

谢谢,

大卫

Liz*_*Liz 32

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

QGroupBox { 
     border: 2px solid gray; 
     border-radius: 3px; 
 } 
Run Code Online (Sandbox Code Playgroud)

此样式表仅在"组"框中设置.但是,如果在第二个组中放置第二个组框,则该样式也将传播到此组.这可能是好事也可能是坏事.

另一种方法是具体应用样式的窗口小部件的objectName.例:

QGroupBox#MyGroupBox { 
     border: 2px solid gray; 
     border-radius: 3px; 
 } 
Run Code Online (Sandbox Code Playgroud)

这仅将样式应用于对象名称为MyGroupBox的组框.

至于空间,它正在发生,因为标题是在你的边界上绘制的.您还可以在样式表中添加一个部分以更改您的组框标题.这包括将其背景设置为透明,并将标题移动到您的心灵内容.

示例:这会将标题设置在边框内部的组框的左上角,没有间隙.

QGroupBox::title { 
    background-color: transparent;
     subcontrol-position: top left; /* position at the top left*/ 
     padding:2 13px;
 } 
Run Code Online (Sandbox Code Playgroud)