QSS QTabBar的文字对齐方式不起作用。

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

我试着(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) ?

c++ qt qtabwidget qtstylesheets qtabbar
3个回答
0
投票

我认为当前版本的Qt(5.4)不支持这个功能。你可以尝试使用 QPainter 以你想要的对齐方式将文字画到标签上。

您可以使用特定的padding和 Qt::AlignLeft 来获得这种潜在的结果。

更多信息请参见Qt论坛上的这个帖子----。https:/forum.qt.iotopic35405qss-qtabbar-text-align-does-not-work。


0
投票

试试 setElideMode(Qt::ElideRight);


0
投票

作为一个变通的办法,你可以在标题的末尾用空格垫起来,用 setElideMode(Qt::ElideRight) 并使用自定义的QTabBar与重新实现的 sizeHint() 以避免拉长标签。

QSize TabBar::tabSizeHint(int index) const {
    QSize size = QTabBar::tabSizeHint(index);
    size.setWidth(250);
    return size;
}
© www.soinside.com 2019 - 2024. All rights reserved.