Когда разрабатываете свой GUI с помощью PyQt для какого-либо софта бывает необходимо позаимствовать цвета из текущего стиля интерфейса. Например, чтобы правильно раскрасить свои виджеты, подогнав их по цвету. Ведь бывает, что ваш GUI используется в разных софтах. Причём некоторые со светлой темой а другие с тёмной.
По умолчанию стили наследуются, но если вы задаёте какую-либо раскраску для части виджета через свой styleSheet, то требуется ссылаться на цвета текущего стиля.
Как это сделать? Как получить нужный цвет из палитры имеющегося стиля? Это достаточно просто, нужно использовать класс QPalette и его роли.
Например, мне нужно достать цвет текста из одного виджета и применить его в другом как цвет фона (не важно зачем именно так, просто захотелось😊).
Получаем палитру виджета и сразу достаём нужный цвет, указав его роль.
from PySide2.QtGui import QPalette
color = main_window.palette().color(QPalette.Text)
теперь можем использовать этот цвет в стилях
my_widget.setStyleSheet(f'background-color: {color.name()};')
Готово, мы динамически переопределили дефолтный стиль используя текущий стиль окна!
На самом деле есть запись покороче, в одну строку и без лишних переменных. Не очень-то по правилам CSS, но Qt это понимает.
my_widget.setStyleSheet('background-color: palette(Text);')
Этот способ не подходит если вам нужно как-то модифицировать цвет перед применением в своих стилях. В этом случае потребуется первый способ.
Зато он прекрасно сработает в файле .qss, то есть не придётся в коде прописывать раскраску отдельных элементов через ссылки на палитру, всё красиво сохранится в отдельном файле .qss!
QListView#my_widget::item:selected {
background: palette(Midlight);
}
Про имеющиеся роли можно почитать здесь🌍
#qt#tricks
📸Распаковка Waizowl Triaina - в наличии!
🔵Два цвета: Белая-Riptide и Черная-Abyss.
🔵Корпус сделан из композитного материала, а именно смеси Поликарбоната и Стекловолокна, максимальная прочность и жесткость корпуса.
🔵Вес 49 грамм, размеры 122x64x36 миллиметров. Симметричная форма с центральным расположением горба подойдет для следующих типов хвата и длины ладони: Когтеовой хват (17.5-20) Ладонный хват (16.5-18), Пальцевый хват (18.5-21).
🔵Внутри установлены новые Оптические переключатели TTC, энкодер TTC Gold, кастомный сенсор PAW3950 HAWKEYE, датчик с экстремальной производительностью и низким энергопотреблением Nordic 54L15.
Цена: 6.990₽ - на ReShip.pro🛍️
САЙТ • МЕНЕДЖЕР • #WAIZOWL
🔱НОВИНКА ОТ WAIZOWL🔱
— Бренд давно не радовал нас новинками и на днях представил свежую модель Waizowl Triaina:
🔵Два цвета: Белая-Riptide и Черная-Abyss.
🔵Корпус сделан из композитного материала, а именно смеси Поликарбоната и Стекловолокна, максимальная прочность и жесткость корпуса.
🔵Вес 49 грамм, размеры 122x64x36 миллиметров. Симметричная форма с центральным расположением горба подойдет для следующих типов хвата и длины ладони: Когтеовой хват (17.5-20) Ладонный хват (16.5-18), Пальцевый хват (18.5-21).
🔵Внутри установлены новые Оптические переключатели TTC, энкодер TTC Gold, кастомный сенсор PWA3950 HAWKEYE, датчик с экстремальной производительностью и низким энергопотреблением Nordic 54L15.
🥇Цена 8.390₽ 7.551₽ — Cкидка 10% на предзаказ до 30-го числа.
САЙТ • МЕНЕДЖЕР • #WAIZOWL
🦔Waizowl OGM Pro V2 Poseidon в наличии! Лимитированная расцветка которая не будет пополняться после солд аута.
🔵Сенсор PAW3950
🔵Переключатели оптические Omron
🔵Супер цепкое покрытие
🔵Донгл 8.000hz в комплекте
🔵Вес 49 грамм
— Эргономичная мышка средних размеров, горб в центре и небольшой наклон клавиш, подойдет для Ладонного и Когтевого хвата.
💵Цена: 8.790₽ на ReShip.pro
САЙТ • МЕНЕДЖЕР • #WAIZOWL
🛍️Новая лимитированная расцветка OGM Pro V2 — Poseidon уже скоро в ReShip!
Оформляй предзаказ прямо сейчас и получи скидку🔤
— Лимитированное издание - количество ограничено!
➖Цена: 8 490 ₽
➖Доступно на ReShip.pro
КАТАЛОГ • МЕНЕДЖЕР • #WAIZOWL
⏰WAIZOWL пополнили коллекцию OGM PRO V2 расцветкой POSEIDON!
☁️Сенсор PAW3950
☁️Переключатели оптические Omron
☁️Супер цепкое покрытие
☁️Донгл 8.000hz в комплекте
☁️Вес 49 грамм
— Уникальная эргономичная форма с детализированным дизайном богини, создана для Когтевого и Ладонного хвата
💳Цена со скидкой на предзаказ 8.490₽ — уже на ReShip.pro
КАТАЛОГ • МЕНЕДЖЕР • #WAIZOWL
🌸Waizowl OGM Pro V2 в расцветках Purple Fade и Blue Fade
🔘Сенсор PAW3950
🔘Переключатели Huano Transparent Green Shell White Dot
🔘Донгл 8к в комплекте
🔘Вес 49 грамм
Эргономичная мышка средних размеров, с высоким горбом по середине и высоким расположением клавиш, подойдет для средней и большой ладони (хват Ладонный/Когтевой)
💳Цена 7.990₽
ОФОРМИТЬ ЗАКАЗ • КАТАЛОГ • #WAIZOWL
🌒Переходи на темную сторону с Waizowl OGM Pro V2 HADES
🟡Сенсор PAW3950
🟡RAESHA Optical Switch
🟡Супер цепкое покрытие
🟡Донгл 8к в комплекте
🟡Вес 49 грамм
🌒Уникальная эргономичная форма с детализированным дизайном богини, не упустите шанс добавить этот шедевр в свою коллекцию всего за 8.790₽!
ОФОРМИТЬ ЗАКАЗ • КАТАЛОГ • #WAIZOWL
👑Мышка Waizowl Cloud XS с потрясающим дизайном, созданная с любовью к совам, уже в продаже!
~ Сенсор Paw3950
~ Оптические переключатели RAESHA
~ 8к донгл в комплекте
~ Вес 45 грамм
✨ Отлично подходит для ладонного и когтевого хвата, обеспечивая полную поддержку ладони и комфортное размещение пальцев по бокам.
ОФОРМИТЬ ЗАКАЗ • КАТАЛОГ • #WAIZOWL