1

我尝试(font-weigth:有效,但text-align:无效):

QTabBar::tab:text{
    font-weight:bold;
    text-align:left;
}

我尝试了,但它也不起作用:

QTabBar::tab {
    font-weight:bold;
    text-align:left;
}

我的QTabWidget

<item>
 <widget class="QTabWidget" name="tabWidget">
  <widget class="QWidget" name="tab">
   <attribute name="title">
    <string>Tab 1</string>
   </attribute>
  </widget>
  <widget class="QWidget" name="tab_2">
   <attribute name="title">
    <string>Tab 2</string>
   </attribute>
  </widget>
 </widget>
</item>

我也没有找到任何对齐文本的“属性”<property name="...">)。

如何使用“QSS”对齐标签(QTabBar/QTabWidget)的文本?

4

3 回答 3

0

我认为当前版本的 Qt (5.4) 不支持这一点。您可以尝试使用绘图事件QPainter将文本绘制到您想要的对齐方式的选项卡上。

您可以使用特定的填充并Qt::AlignLeft潜在地获得此结果。

有关更多信息,请参阅 Qt 论坛上的这篇文章 - https://forum.qt.io/topic/35405/qss-qtabbar-text-align-does-not-work

于 2015-04-09T12:34:33.073 回答
0

尝试setElideMode(Qt::ElideRight);

于 2015-11-03T10:21:42.203 回答
0

作为一种解决方法,您可以在最后用空格填充标题,使用setElideMode(Qt::ElideRight)并使用重新实现的自定义 QTabBarsizeHint()以避免拉伸标签:

QSize TabBar::tabSizeHint(int index) const {
    QSize size = QTabBar::tabSizeHint(index);
    size.setWidth(250);
    return size;
}
于 2020-05-04T10:33:44.360 回答