QSS QTabBar text-align не работает

Я попробую (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)

2 ответа

Пытаться setElideMode(Qt::ElideRight);

В качестве обходного пути вы можете дополнить заголовок пробелами в конце, используя setElideMode(Qt::ElideRight) и используйте настраиваемый QTabBar с повторно реализованным sizeHint() чтобы избежать растянутых вкладок:

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

Я не думаю, что это поддерживается в текущей версии Qt (5.4). Вы можете попробовать использовать событие рисования с QPainter нарисовать текст на вкладке в нужном вам выравнивании.

Вы можете использовать специальные отступы и Qt::AlignLeft чтобы получить этот результат потенциально.

Смотрите этот пост на форуме Qt для получения дополнительной информации - https://forum.qt.io/topic/35405/qss-qtabbar-text-align-does-not-work

Другие вопросы по тегам