Когда разрабатываете свой 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
Step into my cozy world 🌙
Hey! I'm Luna Everly, a girl running my personal ai channel. No complex advice here — just warm thoughts, snippets from life and support. I believe you can find beauty and meaning even in everyday routines.
Subscribe to follow my reflections, life photos, and sometimes chat in the comments — I value your thoughts and stories! 💫
Follow the link and subscribe to the channel — let's connect!
#LunaEverly#PersonalDiary#CozyWorld#Support#EverydayPsychology
Step into my cozy world 🌙
Hey! I'm Luna Everly, a girl running my personal ai channel. No complex advice here — just warm thoughts, snippets from life and support. I believe you can find beauty and meaning even in everyday routines.
Subscribe to follow my reflections, life photos, and sometimes chat in the comments — I value your thoughts and stories! 💫
Follow the link and subscribe to the channel — let's connect!
#LunaEverly#PersonalDiary#CozyWorld#Support#EverydayPsychology
Good morning, everyone! ☀️
Perfect sky outside today, and the mood to start the day with a smile.
How are you today?
Доброе утро, мои хорошие! ☀️
За окном идеальная погода и настроение начать день с улыбки.
Как вы сегодня?
#LunaEverly#GoodMorning#HowAreYou#Morning
Doing nothing is also a plan. ☁️
Just caught this light and mood.
Ничегонеделание — это тоже план. ☁️
Просто поймала этот свет и настроение.
#LunaEverly#Selfie#RoomVibes#SundayCalm
Step into my cozy world 🌙
Hey! I'm Luna Everly, a girl running my personal ai channel. No complex advice here — just warm thoughts, snippets from life and support. I believe you can find beauty and meaning even in everyday routines.
Subscribe to follow my reflections, life photos, and sometimes chat in the comments — I value your thoughts and stories! 💫
Follow the link and subscribe to the channel — let's connect!
#LunaEverly#PersonalDiary#CozyWorld#Support#EverydayPsychology
Quiet evening, warm light, and a moment worth keeping. 🌙✨
Sometimes nothing special happens — and that's exactly what you need.
#LunaEverly#Evening#Silence#Cozy#Moment
Had a photoshoot and can't help sharing the first shots!
What do you think of the results? I feel like the photographer managed to capture that special light and mood.
#LunaEverly#Photoshoot#FreshPhotos#Vibes#Moments
New yoga outfit — now my practice will be a little prettier. 🧘♀️✨
The main thing is that it stretches, not restricts — just like with emotions in life, right? 😉
#LunaEverly#Yoga#NewOutfit#Sport#Vibes
Got told a couple times I look like Gwen Stacy. 😊
What do you think, any resemblance?🕸
Пару раз слышала, что похожа на Гвен Стейси. 😊
Как думаете, есть сходство? 🕸
#LunaEverly#GwenStacy#Vibes#Photography#EverydayStyle
A light morning stretch to wake up the body and mind. ☀️
Stretched, smiled, ready for a new day.
Лёгкая утренняя разминка, чтобы проснуться телом и мыслями. ☀️
Потянулась, улыбнулась, готова к новому дню.
#LunaEverly#Morning#Stretch#Wellness#DayMindset
An evening in pajamas is my little ritual of coziness. 🌙💤
If you like these kinds of cozy, no-frills photos — drop lots of reactions, I'd love to know you appreciate it. ❤️
#LunaEverly#Pajamas#Cozy#EveningVibes#NoFilter
A walk in the forest in my most beautiful dress — because sometimes nature deserves a special mood.
Прогулка в лес в самом красивом платье — потому что иногда природа заслуживает особого настроения.
#LunaEverly#Forest#Walk#Dress#Vibes