Qt 样式表文本对齐

4
我正在尝试改变QGroupbox的外观。问题出在边框上。更改样式表后,groupbox的文本不再与边框对齐。如何解决这个问题?
在第一张图片中,边框与文本很好地对齐。
与此QGroupBox相关的样式表如下:
QGroupBox{
background-color: rgb(0,80,120);
color: white;
font: 14pt "MS Shell Dlg 2";
font: bold;
text-align:center;
}

在第二张图片中,边框与文本底部对齐: 上面所述的QGroupBox相关样式表如下:
QGroupBox{
background-color: rgb(0,80,120);
color: white;
font: 14pt "MS Shell Dlg 2";
font: bold;
text-align:center;
border-color: rgb(255,255,255);
border-width: 2px;
border-style: solid;
border-radius: 9px;
padding: 2px;
}

您可以看到,当我添加边框相关参数时,文本对齐方式会发生变化。我想要第一种样式,但是希望文本与边框对齐。哪里出了问题?

谢谢。


1
实际上不是文本被破坏了,而是边框被破坏了。它从顶部缩进移动到上边缘。 - Sebastian Lange
1个回答

1

没什么问题,但你应该调整边距/填充和子控件。我建议你阅读Qt样式表参考


1
这是错误的,只需添加边框:2px solid;,您就会看到边框在标题上方绘制而不是标题旁边,不会移动标题。 - Sebastian Lange
Qt中的QSS - 它是一种魔法。我浪费了很多时间来调整所有的边框、边距和填充。所以我只能建议进行实验。 - Dmitry Sazonov
1
@SebastianLange 添加属性"border: 2px solid"并不能解决问题。边框会移动到标题上方。 - Atilla Baspinar
我在帖子中评论说,2像素实线破坏了边框,这不是解决方案,对于任何误解我感到抱歉。 - Sebastian Lange
这个问题可以通过向StyleSheet添加一个项目来解决: QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; padding:0; } 感谢帮助。 - Atilla Baspinar

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