在水平布局中垂直居中标签
问题描述:
我在将QLabel
垂直居中置于QHBoxLayout
内有点问题。相关一张我的代码如下:在水平布局中垂直居中标签
QFrame* topBar = new QFrame();
topBar->setStyleSheet("background-color: #2c3d50;border-bottom: 3px solid #2c92b6;");
topBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
topBar->setFixedHeight(24);
QHBoxLayout* topBarLayout = new QHBoxLayout();
QLabel* label = new QLabel("MSFT");
label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
label->setStyleSheet("font-size: 15px;font-weight: bold;border: 0px;");
label->setMinimumHeight(15);
topBarLayout->addWidget(label);
topBar->setLayout(topBarLayout);
topLayout->addWidget(topBar);
我的地方目标是有垂直居中的标签。我的尝试:
-
Qt::AlignVCenter
- 没有影响 -
QSizePolicy::PreferredSize
和QSizePolicy::Expanding
造成垂直收缩标签不minimumHeight
/fixedHeight
,在这里我希望它自由扩展到父 - 的高度变化
minimumHeight
或加入padding/margin:
,这只会继续向下移动QLabel
。
我的最终目标是要建立固定的高度和可变宽度的条(照片中的暗蓝色的东西),与标签和按钮(如标题,关闭,最大化等)对齐在两边,不管酒吧的宽度。
因特网和说,增加另一个QBoxLayout
居中Label
垂直可以解决这个问题,但我会加入大量的组件是吧,所以这个“解决方案”将是非常不切实际的。
TL; DR:如何在水平布局中将Label
(或其文本)垂直对齐?
@ G.M。正如我的文章所述,使用alignment属性并不是很有帮助,结果如图所示。 – user35443
@GCyrillus这是Qt,HTML不会生成,样式表在上面的代码片段中。 – user35443
如果您只是将调用移除到'setSizePolicy',会发生什么? –