QGroupBox标题垂直对齐

问题描述 投票:1回答:1

我的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 */
}

问题是,标题现在下降了几个像素,并且实际上在组框内的元素上方。

我想将其居中。我尝试了垂直对齐,subcontrol-align,subcontrol-alignment甚至top:-5px,它实际上使标题居中,但修剪了高于边框的文本。在SO或Qt论坛上没有找到解决我问题的答案。

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

qt alignment qtstylesheets qgroupbox
1个回答
1
投票

我了解我的错误:根据框模型(页边距>边框>填充>内容),我的文本的原点位于页边距。但是我的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;
}
© www.soinside.com 2019 - 2024. All rights reserved.