2

我的 UI 中有 QGroupBox。基本样式是 2px 宽度的边框、边框半径和垂直居中的标题。

我在样式表中使用了以下样式(在 .qrc 中,主要使用 app->setStylesheet 应用):

QGroupBox {
    border: 1px solid #22a4bc;
    border-radius: 0px;
}

QGroupBox::title {
    subcontrol-origin: margin;
    subcontrol-position: top; /* position at the top center */
}

问题是,标题现在下降了几个像素,实际上超过了 groupbox 中的元素。

我想将其设置为居中。我尝试了垂直对齐,子控件对齐,子控件对齐,甚至顶部:-5px,它实际上使标题居中,但修剪了高于边框的文本。我在 SO 或 Qt 论坛上没有找到任何解决我问题的答案。

有人知道如何将标题的垂直对齐设置为后中心吗?(我使用 C++、Qt 5.2.1 / msvc2012、Qt Creator 3.6.1 / Windows 7)

4

1 回答 1

2

我理解我的错误:根据框模型(边距 > 边框 > 填充 > 内容),我的文本的原点在边距中。但是我的 QGroupBox 中没有边距,所以很奇怪。

我想出了这种风格,它可以满足我的需求:

QGroupBox {
    border: 1px solid #22a4bc;
    border-radius: 0px;
    padding-top: 10px;
    margin-top: 5px;
}

QGroupBox:title {
    subcontrol-origin: margin;
    subcontrol-position: top center;
    margin-left: 3px;
    margin-right: 3px;
}
于 2016-06-28T15:10:02.737 回答