Когда разрабатываете свой 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
Roberto #Speranza: "Articolo Uno oggi smette di essere un partito politico. Dobbiamo guardare con fiducia al futuro. E il nostro investimento sarà tutto rivolto a dare forza al nuovo Pd."
@UltimoraPolitics
#Italia
Roberto #Speranza dice sì alla lista unitaria proposta dal segretario del Pd Enrico Letta. Lo scrive La Repubblica, anticipando che l'ufficialità dell'adesione di Articolo 1 arriverà mercoledì
@UltimoraPolitics
Minacce choc sui social a Giorgia #Meloni: "ammazzo te e tua figlia"
Solidarietà dall'ex ministro #Speranza: "le minacce alla vita dei familiari sono oltre ogni limite."
@UltimoraPolitics
Inchiesta Covid, Pm Bergamo: "Roberto #Speranza aveva firmato una bozza di decreto per estendere a Nembro e Alzano Lombardo la zona rossa. Ma la bozza non fu firmata da Giuseppe #Conte". L'ex presidente del Consiglio: "Mai avuta in mano tale bozza"
@UltimoraPolitics
#Italia
Si sono recentemente conclusi i congressi territoriali di #A1MDP|S&D, la lista di Roberto #Speranza supera il 90%. (BiDiMedia)
@UltimoraPolitics
Il Tribunale dei Ministri archivia le posizioni dell'ex premier Giuseppe #Conte e dell'ex ministro della Salute Roberto #Speranza indagati nell'inchiesta della Procura di Bergamo sulla gestione della prima ondata Covid nella bergamasca
@UltimoraPolitics24
Inchiesta Covid, Pm Bergamo: "Roberto #Speranza aveva firmato una bozza di decreto per estendere a Nembro e Alzano Lombardo la zona rossa. Ma la bozza non fu firmata da Giuseppe #Conte". L'ex presidente del Consiglio: "Mai avuta in mano tale bozza"
@UltimoraPolitics
"In un tempo in cui le persone sono spesso tentate da un senso di disperazione, abbiamo la missione essenziale, come messaggeri cristiani di #speranza, di portare la luce del Signore negli angoli più bui del nostro mondo". Lo ha detto Papa #LeoneXIV ricevendo, nella biblioteca privata del Palazzo Apostolico, la Delegazione Ecumenica della #Finlandia, giunta, come da tradizione, in pellegrinaggio a #Roma in occasione della festa di Sant’Enrico.
"Sebbene il Giubileo si sia ormai concluso, la nostra speranza cristiana non conosce fine né limiti. Così, incoraggiati e rafforzati dalla grazia di Gesù Cristo, che è l'incarnazione stessa della speranza per tutti, siamo chiamati e inviati a testimoniare questa verità salvifica con parole edificanti e opere di carità", ha proseguito il Pontefice, citando "i numerosi segni di speranza che si trovano tra i cristiani di Finlandia. Sono stato lieto di apprendere che la Finlandia è stata descritta come 'un paese modello per l'ecumenismo'. So che i vescovi di Helsinki, in una dichiarazione trilaterale ortodosso-luterano-cattolico, stanno cercando di promuovere una 'cultura di speranza, dignità e compassione' e hanno affermato congiuntamente che 'lo sviluppo delle cure palliative e di fine vita deve continuare'".
È anche degno di nota che la Conferenza episcopale cattolica nordica abbia riconosciuto il documento del dialogo nazionale cattolico-luterano, "Comunione nella crescita", nella sua "Dichiarazione di accoglienza" dello scorso settembre, definendolo una "preziosa pietra miliare nel cammino ecumenico".
"Tali esempi di cooperazione, insieme alla lunga tradizione di celebrare congiuntamente la festa di Sant'Enrico, sono segni eloquenti di un ecumenismo pratico e fruttuoso e possono servire a incoraggiare la sesta fase del dialogo internazionale cattolico-luterano, che inizierà il mese prossimo. Cari amici, con questi pensieri, vi auguro una visita piacevole e produttiva a Roma".
"Come segno della nostra amicizia in Cristo, vorrei ora invitare tutti voi, tutti noi, a pregare insieme il Padre Nostro in inglese", ha concluso il Papa.
#Italia #CongressoA1MDP Roberto #Speranza (#A1MDP|S&D): "Chiedo a Letta: se si fa la sinistra noi ci siamo. Lo abbiamo già detto nelle nostre campagne. E lo ribadiamo oggi. Se si fa la sinistra, che serve all’Italia e all’Europa, noi ci siamo." @UltimoraPolitics