QGroupBox 标题垂直对齐

3

我在我的用户界面中有一个QGroupBox。基本样式是2像素宽的边框,边框半径和标题垂直居中。

我将以下样式应用于我的样式表(位于.qrc中,在主应用程序中使用app->setStylesheet应用):

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

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

问题是,标题现在向下移动了几个像素,并且实际上超过了组合框中的元素。
我想将其设置为居中。我尝试了vertical-align、subcontrol-align、subcontrol-alignment,甚至是top:-5px,它实际上可以将标题居中,但会裁剪高于边框的文本。
我在SO或Qt论坛上没有找到任何解决我的问题的答案。
有人知道如何将标题的垂直对齐设置为背部中心吗? (我使用C++,Qt 5.2.1/msvc2012,Qt Creator 3.6.1/Windows 7)
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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接