Когда разрабатываете свой 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
🐈⬛NEW RELEASE
🐈⬛
🐈⬛Master the Move: Toreando Guard Pass by John Danaher
🐈⬛
🐈⬛Master one of the most dominant and reliable guard passing systems in Brazilian Jiu-Jitsu with Master the Move: Toreando Guard Pass by John Danaher.
🐈⬛In this comprehensive instructional, he turns his attention to the toreando (bullfighter) pass—arguably the highest percentage and most versatile guard pass in the sport.
$197
🐈⬛$19.99
🐈⬛
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱📱
💰Submeta FOR FREE
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#Passing#NoGi#NewWave
🐈⬛Buy
🐈⬛
🔥NEW RELEASE🔥
😁Master The Move: The Knee Cut Guard Pass By John Danaher😁
➡️The knee cut pass is one of the most dominant and highest-percentage guard passes in Brazilian Jiu-Jitsu—and no one understands it more deeply than John Danaher.
➡️From controlling the far-side shoulder and dominating the near-side hip, to precise knee placement, underhook mechanics, and passing posture, nothing is left unexplained
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#Passing#NoGi#NewWave
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Master The Move: The Shoulder Crunch Series By John Danaher😁
➡️Learn The Shoulder Crunch System That John Danaher’s Elite Students Use To Break Through Modern No-Gi Guards & Control Opponents Like Never Before
➡️This position has become a staple in the arsenal of Danaher’s most successful students, including Gordon Ryan and Giancarlo Bodoni, for its ability to shut down modern pressure passing, neutralize resistance, and launch devastating attacks.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#NewWave#NoGi#Guard
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Master The Move: The Butterfly Guard Sweep Sumi Gaeshi by John Danaher😁
➡️In Master The Move: The Butterfly Guard Sweep Sumi Gaeshi, Danaher breaks down what many consider the single most effective sweep in grappling.
➡️Now, for the first time, Danaher reveals the complete system behind the Sumi Gaeshi sweep from butterfly guard — the same position that connects effortlessly to leg locks, back takes, and devastating top control sequences.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#Sweeps#NoGi#NewWave
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Master The Move: The Back Crucifix By John Danaher😁
➡️Unlock one of the most dominant and devastating positions in Brazilian Jiu-Jitsu with Master The Move: The Back Crucifix, a groundbreaking instructional series by legendary coach John Danaher
➡️The back crucifix is unique — it doesn’t earn points in competition, yet it offers extraordinary submission opportunities through unparalleled control and leverage.
➡️In this meticulously crafted series, Danaher breaks down every nuance of the back crucifix, revealing how to achieve, maintain, and capitalize on this position with precision.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#Crucifix#NoGi#NewWave
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Master The Move: The Side Crucifix By John Danaher😁
➡️Unlock the power of the Side Crucifix with John Danaher in this must-have instructional video from his best-selling "Master The Move" series
➡️With clear, step-by-step instructions, John reveals the fundamental principles behind the Side Crucifix, a position that allows you to dominate your opponent with high-percentage attacks, all without requiring advanced athletic ability.
➡️If you want to improve your upper body submission game and finish your opponents with efficiency and precision, the Side Crucifix is your new go-to position
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#BJJFanatics#NewWave#NoGi#Danaher
💁♀️Buy
💁♀️