QSS QTabBar text-align不起作用

时间:2013-12-12 17:54:51

标签: c++ qt qtabwidget qtstylesheets qtabbar

我尝试(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”<property name="...">)。

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

3 个答案:

答案 0 :(得分:0)

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

您可以使用特定填充和Qt::AlignLeft来获得此结果。

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

答案 1 :(得分:0)

尝试setElideMode(Qt::ElideRight);

答案 2 :(得分:0)

作为一种解决方法,您可以在标题末尾加空格,使用setElideMode(Qt::ElideRight)并使用带有重新实现的sizeHint()的自定义QTabBar以避免扩展标签:

QSize TabBar::tabSizeHint(int index) const {
    QSize size = QTabBar::tabSizeHint(index);
    size.setWidth(250);
    return size;
}