如何在 QT 中为分组框标题设置样式表

shi*_*ena 1 qt

我有一个带分组框的小部件。我使用样式表为 groupbox 设置了边框,该样式表也可以正常工作,但边框与 groupbox 标题不匹配。我在谷歌搜索,他们建议更改组框标题,如:

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

在我的代码中,我使用了如下样式表:

ui->groupBox->setStyleSheet("border: 1px solid gray;"
                            "border-radius: 9px;"
                            "margin-top: 0.5em;");
Run Code Online (Sandbox Code Playgroud)

那么如何为分组框标题应用 setstylesheet 属性,请指导我。

Ale*_*kin 5

将此类样式表应用于 的父级groupBox

this->setStyleSheet("QGroupBox::title {"
                    "background-color: transparent;"
                    "padding-top: -24px;"
                    "padding-left: 8px;} ");
Run Code Online (Sandbox Code Playgroud)

就我而言,它是MainWindow.

您也可以通过调用所需小部件上的“编辑样式表...”菜单从QtDesigner编辑样式表。我更喜欢编辑我的MainWindow样式表以将所有代码保存在一个地方。

QtDesigner 中, CSS 看起来像这样(这是QGroupBox父级的样式表)

QGroupBox {
  border: 1px solid gray;
  border-radius: 9px;
  margin-top: 0.5em;
}

QGroupBox::title {
  background-color: transparent;
  padding-top: -24px;
  padding-left: 8px;
}
Run Code Online (Sandbox Code Playgroud)