Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: __Heaven__ от Февраль 15, 2022, 13:11



Название: Разноцветные табы в QTabWidget. Градиент
Отправлено: __Heaven__ от Февраль 15, 2022, 13:11
Привет, народ!

Стоит задача подсвечивать табы разными цветами с использованием градиента
Осилил только задание цвета в палитре https://github.com/dsbabkov/TabWidgetWithCustomizableTabs
При задании градиента на фон таба он рисуется чёрным, а при задании на текст градиента тот рисуется белым. Что я делаю не так?

Что я пробовал:
1. По мере рисования табов задавать градиент в styleSheet. Это помогает достичь желаемого эффекта, но нагружает процессор, т.к. постоянно дёргается paintEvent. Отключение обновлений на рисование не даёт желаемого эффекта, т.к. после включения обновлений сразу дёргается paintEvent.

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

2. В paintEvent завести второй таб бар и назначить ему styleSheet с градиентом. При рисовании обычного таба использовать options, style и widget чей paintEvent вызывается, а при рисовании подсвеченного таба использовать style и widget от нового объекта. Это не дало результата - таб рисуется цветом из палитры


Название: Re: Разноцветные табы в QTabWidget. Градиент
Отправлено: __Heaven__ от Февраль 15, 2022, 13:19
Забыл сказать, что использую linux. На винде скорее всего, нужно будет применить стиль fusion


Название: Re: Разноцветные табы в QTabWidget. Градиент
Отправлено: __Heaven__ от Февраль 15, 2022, 13:49
Добавил fusion стиль в https://github.com/dsbabkov/TabWidgetWithCustomizableTabs