Когда разрабатываете свой 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
Russian forces strike Ukrainian military positions, causing significant casualties and destroying equipment. The Ukrainian army suffers losses of up to 160 soldiers, along with tanks, armored vehicles, and artillery. Russian defense ministry claims successful defense against Ukrainian attacks. US recognizes the grave threat to Ukrainian Armed Forces. #WarInUkraine#RussianAggression
https://www.gazeta.ru/army/news/2023/11/10/21678625.shtml
Subscribe to @BadVolfNews
Ми – твій захист та впевненість у завтрашньому дні,
Ти – наша підтримка та допомога!
У рамках всеукраїнської платформи «Друзі ДШВ» долучись і стань другом десантників, для цього потрібно:
1. Перейти за посиланням Всеукраїнська платформа підтримки «Друзі ДШВ» ( druzi.mil.gov.ua ).
2. Натиснути «Приєднатись».
3. Обрати з ким конкретно або загалом хочеш потоваришувати.
4. Зробити свій внесок у мрію кожного українця – ПЕРЕМОГУ!
Вчись перемагати!
Служба зв’язків з громадськістю 199 навчального центру Десантно-штурмових військ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
www.facebook.com/uaairborne
www.youtube.com/@-dshv_ua/videos
https://godshv.mil.gov.ua/
https://druzi.mil.gov.ua
FPV ВНОЧІ? ТА ЛЕГКО!
💣Ми зверху бачимо все. Знайте це й бійтеся! Такі вітання переказують окупантам бійці роти ударних безпілотних авіаційних комплексів нашої бригади. І вдень, і вночі ворогам не буде спокою на нашій землі. А вночі уражена техніка сяє яскравіше, її видно далі, й ця картина назавжди вкарбовується в довбешки російських зайд. «Горить-палає техніка ворожа!». І так тому й бути! Амінь, воріженьки!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
💥Особовий склад 46 окремої аеромобільної бригади вітає артилеристів-десантників із днем створення військової частини! Нехай ваші розрахунки завжди будуть точними, а кожен постріл – влучним і дошкульним для окупантів!
⚡️Разом до перемоги! ДШВ – завжди перші! Слава Україні!
Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
💥У другу річницю створення нашої бригади ми, як і обіцяли, пропонуємо вашій увазі першу серію документального міні-серіалу «46. ШЛЯХ ЧЕСТІ». Її розміщено на Ютуб-каналі 46 оаембр за посиланням: https://youtu.be/HzdGsAbW8NI
Прем’єра – о 16.00.
✏️Дивіться й не забувайте підписуватися на канал!
Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️Щирі привітання надихають і мотивують. А нам залишається повністю виправдати сподівання людей і щодня наближати перемогу!
💥Слава Україні! ДШВ – завжди перші! Разом до перемоги!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️З вдячністю усвідомлюємо, що в нас так багато друзів. З такою підтримкою і ворога легше бити!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️А привітання продовжують надходити. Приємно!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️Від привітань не втомлюємося. Навпаки, вимагаємо ще!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️Продовжуємо приймати привітання від наших зірок.
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️З нагоди другої річниці створення нашої бригади її воїнів вітають представники українського шоу-бізу. Теплі слова підтримки й найкращі побажання – то бальзам для втомлених війною хлопців. Які щомиті мають відчувають свою потрібність суспільству і вдячність співгромадян за причетність до святої справи – захисту рідної країни від ненависних російських окупантів.
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
ВОРОЖИЙ «ГРАД» РОЗІБРАНО НА МОЛЕКУЛИ
💣Ворожу систему залпового вогню «Град» знищили за допомогою FPV-дрона десантники нашої бригади. Явище було феєричне. Феєрверк перевершив усі сподівання. Екіпаж роти ударних безпілотних авіаційних комплексів спрацював бездоганно й не зупинився на досягнутому – наші воїни вистежили й знищили ще одну ворожу ціль, яку не врятували ні швидкість, ні спритність. А окупантам, тяжко зітхаючи, довелося хіба що констатувати ураження своєї техніки. Тож полювання триває!
Не забувайте підписуватися на наш Ютуб-канал: https://www.youtube.com/@46OAeMBr
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces