Когда разрабатываете свой 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
Jugador del día 29/06/2025:
HUGO RODALLEGA 🇨🇴
#SantaFeCampeon de la mano de Hugol. Marcó el tanto del título estando lesionado y agranda su leyenda en el fútbol colombiano ⚽️
#WorldFootballMVP
#IndependienteMedellin
🗞Vía X:Jugador del Día
@LaGuiadelFutbol
Colombia Primera A🇨🇴
2026-04-22 23:20 UTC
Independiente Medellin vs. Chico
Predicted outcome: Independiente Medellin✅
Predicted score: 2:0
Actual: Independiente Medellin 2:0
#IndependienteMedellin#Chico
2026-04-23 01:30 UTC
Fortaleza FC vs. America de Cali
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: America de Cali 1:2
#FortalezaFC#AmericadeCali
#Football#ColombiaPrimeraA
Colombia Primera A🇨🇴
2026-04-19 19:00 UTC
Santa Fe vs. Cucuta
Predicted outcome: Santa Fe✅
Predicted score: 2:1
Actual: Santa Fe 5:0
#SantaFe#Cucuta
2026-04-19 21:10 UTC
Alianza Valledupar vs. Independiente Medellin
Predicted outcome: Independiente Medellin✅
Predicted score: 1:2
Actual: Independiente Medellin 0:1
#AlianzaValledupar#IndependienteMedellin
2026-04-19 23:20 UTC
Junior vs. Llaneros
Predicted outcome: Junior✅
Predicted score: 2:1
Actual: Junior 2:0
#Junior#Llaneros
2026-04-20 01:30 UTC
America de Cali vs. Millonarios
Predicted outcome: America de Cali✅
Predicted score: 1:0
Actual: America de Cali 3:1
#AmericadeCali#Millonarios
#Football#ColombiaPrimeraA
Colombia Primera A🇨🇴
2026-04-02 19:00 UTC
Chico vs. Deportivo Pereira
Predicted outcome: Chico✅
Predicted score: 2:1
Actual: Chico 1:0
#Chico#DeportivoPereira
2026-04-02 21:10 UTC
America de Cali vs. Bucaramanga
Predicted outcome: America de Cali✅
Predicted score: 1:0
Actual: America de Cali 2:0
#AmericadeCali#Bucaramanga
2026-04-02 23:20 UTC
Jaguares vs. Millonarios
Predicted outcome: Millonarios❌
Predicted score: 1:2
Actual: Jaguares 1:0
#Jaguares#Millonarios
2026-04-03 01:30 UTC
Once Caldas vs. Independiente Medellin
Predicted outcome: Draw✅
Predicted score: 2:2
Actual: Draw 1:1
#OnceCaldas#IndependienteMedellin
#Football#ColombiaPrimeraA
Colombia Primera A🇨🇴
2026-05-01 23:00 UTC
Once Caldas vs. Atletico Nacional
Predicted outcome: Atletico Nacional❌
Predicted score: 1:2
Actual: Once Caldas 1:0
#OnceCaldas#AtleticoNacional
2026-05-02 19:00 UTC
Chico vs. Llaneros
Predicted outcome: Llaneros❌
Predicted score: 1:2
Actual: Chico 3:0
#Chico#Llaneros
2026-05-02 21:00 UTC
Jaguares vs. Cucuta
Predicted outcome: Jaguares✅
Predicted score: 3:2
Actual: Jaguares 2:0
#Jaguares#Cucuta
2026-05-03 20:30 UTC
Independiente Medellin vs. Águilas Doradas
Predicted outcome: Independiente Medellin❌
Predicted score: 2:1
Actual: Águilas Doradas 1:2
#IndependienteMedellin#guilasDoradas
2026-05-03 20:30 UTC
Santa Fe vs. Internacional de Bogota
Predicted outcome: Santa Fe✅
Predicted score: 2:1
Actual: Santa Fe 3:1
#SantaFe#InternacionaldeBogota
2026-05-03 20:30 UTC
Alianza Valledupar vs. Millonarios
Predicted outcome: Millonarios❌
Predicted score: 0:1
Actual: Draw 2:2
#AlianzaValledupar#Millonarios
2026-05-03 20:30 UTC
Deportes Tolima vs. Deportivo Cali
Predicted outcome: Deportes Tolima❌
Predicted score: 2:1
Actual: Draw 1:1
#DeportesTolima#DeportivoCali
2026-05-03 20:30 UTC
Fortaleza FC vs. Bucaramanga
Predicted outcome: Fortaleza FC✅
Predicted score: 2:1
Actual: Fortaleza FC 2:1
#FortalezaFC#Bucaramanga
2026-05-03 22:45 UTC
Junior vs. Deportivo Pasto
Predicted outcome: Junior✅
Predicted score: 2:1
Actual: Junior 4:3
#Junior#DeportivoPasto
2026-05-03 22:45 UTC
America de Cali vs. Deportivo Pereira
Predicted outcome: America de Cali✅
Predicted score: 3:0
Actual: America de Cali 1:0
#AmericadeCali#DeportivoPereira
#Football#ColombiaPrimeraA