настройка вкладки в таблице стилей в qt - PullRequest
4 голосов
/ 03 ноября 2010

Я хотел бы вносить изменения только для конкретной вкладки.Как я могу это сделать?

Я пробовал оба:

QTabBar::tab#tbGeneral{... } 

QTabWidget::tab-bar#tbGeneral{... } 

Ни один не работал.

1 Ответ

5 голосов
/ 03 ноября 2010

Вы, вероятно, изучили Настройка QTabWidget и QTabBar .

Для стилизации отдельных вкладок в зависимости от их состояния (: only-one,: first,: last,: middle,: previous-selected,: next-selected,: selected) вы можете использовать код таблицы стилей, подобный следующему:

QTabBar::tab {
    border: 1px solid #C4C4C3;
    border-bottom-color: #C2C7CB;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    padding: 1px 3px;
    margin-left: 1px;
    margin-bottom: 4px;
}

QTabBar::tab:selected {
    background-color: #f14040;
    border-bottom-style: none;
}

Поскольку отдельные вкладки не являются виджетами (или объектами), у них нет имени объекта или других свойств.что может идентифицировать их в таблице стилей.Вы можете использовать только псевдоклассы для стилизации вкладок с помощью таблицы стилей.

Возможно, вам придется использовать (C ++) код для изменения стиля вкладки в зависимости от метки.Рекомендуемый способ настройки стилей в Qt - через класс QStyle.Вы можете подкласс QStyle или использовать QProxyStyle, чтобы изменить внешний вид определенных виджетов.Другая альтернатива (вероятно, не рекомендуемая Qt) заключается в создании подкласса QTabBar и повторной реализации функции QWidget::paintEvent( QPaintEvent *event).

...