Когда разрабатываете свой 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
La regione #Lombardia ha avviato un piano per formare e assumere più di 200 infermieri provenienti dall’Uzbekistan. L’obiettivo è colmare la grave carenza di infermieri degli ospedali lombardi. Nella legge di stabilità della regione (il documento che definisce le entrate e le spese per i prossimi tre anni, ancora in fase di discussione), si legge che per realizzare parte di questo piano è previsto lo stanziamento di 900mila euro da suddividere su tre anni. (ilPost)
@UltimoraPolitics24
#Italia
Nota del #PD|S&D #Lombardia:
"Se prendi soldi pubblici e non fai gli interessi della collettività, allora non servi. E il contratto deve saltare. Parliamo di sanità: su oltre 400 strutture private accreditate in Lombardia, solo 8 hanno aderito al nuovo CUP unico. Otto su quattrocento. Non è un dettaglio tecnico. È una scelta precisa, pagata dalle lombarde e dai lombardi che ogni giorno fanno i conti con liste d’attesa infinite, visite rinviate, ricette che scadono, medici di medicina generale introvabili e personale sanitario allo stremo.
Mentre il pubblico continua a reggere quasi tutto, una parte del privato si sfila e pensa solo ai bilanci. E la destra di Fontana e Bertolaso resta immobile.
La nostra proposta è semplicissima: se non aderisci al CUP unico entro i prossimi tre mesi, non ti sarà rinnovato il contratto. La porteremo in Consiglio regionale. E sabato 11 aprile alle 15 saremo in piazza, sotto Palazzo Lombardia, a Milano, per difendere il diritto alla salute."
@OsservatorioItaliano
#Lombardia
#Conte lancia la consultazione in rete per le regionali: "Gli iscritti decidano se correre soli, con minori chance di poter essere competitivi, o in coalizione con il centrosinistra, ovviamente con maggiori chance di poter battere il centrodestra e voltare pagina"
@UltimoraPolitics
#Italia#Lombardia#Milano
Ti sei perso il dibattito tra i candidati a Milano? Puoi rivederlo su:
Youtube ▶️https://youtu.be/9Pzke9bTGOA
Twitch ▶️https://www.twitch.tv/videos/1144765642
——————
ℹ️ Questa live potrebbe contenere opinioni che non rappresentano il pensiero di Ultimora.net
Il presente contenuto multimediale è curato esclusivamente dal suo autore, che esprime le proprie idee a titolo personale.
#Lombardia
Attilio #Fontana: "Giorgia Meloni mi ha confermato che il candidato del centrodestra sono io. Il mio nome non è ancora stato ufficializzato dalla coalizione perché si stanno definendo gli ultimi dettagli anche sulle altre Regioni al voto"
@UltimoraPolitics