Когда разрабатываете свой 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 capa di gabinetto al ministero della Giustizia #Bartolozzi a Telecor: "votate sì così ci togliamo di mezzo la magistratura che sono plotoni di esecuzione", dicendo anche che i magistrati, per la maggior parte, "lavorano seriamente e in silenzio" ma che…
La capa di gabinetto al ministero della Giustizia #Bartolozzi a Telecor: "votate sì così ci togliamo di mezzo la magistratura che sono plotoni di esecuzione", dicendo anche che i magistrati, per la maggior parte, "lavorano seriamente e in silenzio" ma che…
La capa di gabinetto al ministero della Giustizia #Bartolozzi a Telecor: "votate sì così ci togliamo di mezzo la magistratura che sono plotoni di esecuzione", dicendo anche che i magistrati, per la maggior parte, "lavorano seriamente e in silenzio" ma che "purtroppo ci sono gli altri che orientano ed è di quelli che ci dobbiamo liberare"
@UltimoraPolitics24
#Italia#Camera
Giusi #Bartolozzi: "Io oggi avrò 30 secondi per parlare durante gli emendamenti. Chiedo di essere clementi verso gli indipendenti di questo parlamento, altrimenti non possiamo espletare il nostro mandato."
@UltimoraPolitics
#Italia#Camera
Giusi #Bartolozzi: "Ieri è arrivato un emendamento della commissione, non scritto della commissione ma del ministero. Non abbiamo potuto fare di subemendamenti, capite bene l'umiliazione dei parlamentari."
@UltimoraPolitics
#Italia#Camera
#IV|RE annuncia il supporto ad alcuni emendamenti di #Bartolozzi (indipendente di cdx), nonostante il parere contrario del governo.
@UltimoraPolitics
#Italia#Camera
❗️L’Ufficio di Presidenza della Camera dei Deputati, con 11 voti favorevoli e 10 contrari, propone di sollevare il conflitto di attribuzione nei confronti della Procura della Repubblica di Roma nel caso che vede coinvolta l’ex Capo di Gabinetto del Ministero della Giustizia, Giusi #Bartolozzi, implicata nella vicenda Almasri. La decisione finale spetterà all’assemblea di Montecitorio.
@OsservatorioItaliano
"No, assolutamente". Così il ministro Carlo #Nordio stamattina a Sky Tg24 risponde in merito alla domanda se fosse in discussione la posizione della capo di gabinetto del ministero Giusi #Bartolozzi. Aggiungendo "Questa è una riforma che porta il mio nome e me ne assumo quindi la responsabilità politica. Se vi sono stati dei difetti di comunicazione o impostazione sono stati anche i miei"
@UltimoraPolitics24
ANSA - La capo di gabinetto Giusi #Bartolozzi e il sottosegretario Andrea #Delmastro sono a colloquio con il ministro della Giustizia Carlo #Nordio negli uffici di via Arenula; secondo fonti informate si va verso le dimissioni dei due.
@UltimoraPolitics
La premier Giorgia #Meloni esprime apprezzamento per la scelta del Sottosegretario alla Giustizia Andrea #Delmastro e del Capo di Gabinetto Giusi #Bartolozzi di rimettere gli incarichi, li ringrazia per il lavoro svolto con dedizione e auspica analoga scelta da parte del Ministro del Turismo Daniela #Santanchè. Lo riferisce una nota di Palazzo Chigi.
@UltimoraPolitics
#Italia
La vice capo di gabinetto uscente del Ministero della Giustizia, Giusi #Bartolozzi (#FI|EPP), è stata questa mattina negli uffici di via Arenula. Bartolozzi ha formalizzato le sue dimissioni ieri sera dopo un lungo colloquio, durato oltre due ore, nell'ufficio del Guardasigilli Carlo #Nordio (#FdI|ECR), anch'egli al lavoro questa mattina.
@Osservatorioitaliano
#Italia
❗️ BREAKING: Terremoto in Via Arenula.
Si dimettono il Sottosegretario alla Giustizia Andrea #Delmastro (#FdI|ECR) e la Capo di Gabinetto del Ministero Giusi #Bartolozzi (#FI|EPP).
@OsservatorioItaliano