Когда разрабатываете свой 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
“Spero che i #Carabinieri siano più puntuali del Papa”. Con una battuta pronunciata a braccio per scusarsi del ritardo #LeoneXIV ha iniziato il discorso rivolto ai Carabinieri della Provincia di Roma, ricevuti oggi in udienza nella Sala Clementina del Palazzo Apostolico, in Vaticano.
“Mi ha fatto molto piacere sapere che lo scorso Anno giubilare, pur essendo stato particolarmente impegnativo, ha rappresentato per voi un’esperienza arricchente, sia sul piano umano sia su quello professionale - le parole del Pontefice -. E’ stato così per tutti noi che viviamo a Roma: la testimonianza di tanti pellegrini ci ha edificato”.
“Voi siete militari e sapete bene che cosa vuol dire gerarchia, comando, obbedienza - sottolinea il Santo Padre -. Queste parole le usiamo anche nella Chiesa, trasformate dalla novità del Vangelo. E, analogamente, il Vangelo, lungo i secoli, ha permeato le strutture, i criteri, i modi di agire e di pensare delle civiltà dove è penetrato; lo ha fatto non con una rivoluzione violenta, ma con una trasformazione pacifica, dall’interno, attraverso le coscienze, la conversione dei cuori. Così il Vangelo ha portato ovunque il senso di Dio e dell’uomo: il rispetto assoluto della vita e della persona umana, insieme all’adorazione di Dio e di Lui solo”.
Anche oggi, per il Pontefice, “siamo chiamati a riscoprire l’essenzialità del messaggio cristiano e lo stile della Chiesa nascente, per incarnarli nel nostro mondo così diverso, molto più complesso. Ma Gesù Cristo è lo stesso ieri e oggi e per sempre”. “Vi ringrazio per il servizio che svolgete, in particolare intorno al Vaticano e nella città di Roma - conclude Leone XIV -. Vi auguro di compierlo sempre con coscienza retta, fedeli ai principi e alle regole dell’Arma dei Carabinieri e, in quanto cristiani, fedeli al Vangelo”.
https://x.com/SavinoBalzano/status/2016476560887312788?s=20
Domenica scorsa due #carabinieri italiani in servizio presso il Consolato generale d’Italia a Gerusalemme sono stati fermati in Cisgiordania (nei pressi di Ramallah) mentre effettuavano un sopralluogo per preparare una visita di ambasciatori #UE in un villaggio palestinese.
Parliamo di due militari, in servizio presso una sede diplomatica, impegnati nella preparazione di una visita ufficiale di diplomatici: mi parrebbe, a naso, una leggerissima violazione del diritto internazionale.
La prima versione, la nostra, parlava di un colono fanatico. Peraltro, ricordiamoci sempre che in Cisgiordania #Hamas non c’è. #Israele, quasi a volerci sfottere, ci ha fatto sapere che non si trattava affatto di un mezzo matto invasato: no, era un militare.
Da una parte ci siamo noi che, per certi versi, sminuiamo la questione parlando di uno squilibrato; dall’altra loro che ci dicono che si tratta di un membro delle forze armate.
Chissà se può definirsi atto ostile quando un militare di un Paese mette in ginocchio, con le armi puntate, i militari di un altro Paese, per di più stanziati presso una sede diplomatica. Toccherebbe sentire #Tajani, per il quale certe cose però contano fino a un certo punto, lo sappiamo.
A proposito di Antonio: ha tuonato dalla #Farnesina. Il ministro Tajani era molto, molto arrabbiato. Chissà se era furioso tanto quanto quella volta in cui i soldati israeliani attaccarono deliberatamente i nostri militari, stanziati al confine con il Libano e impegnati nella missione UNIFIL delle Nazioni Unite. Anche allora tuonò e, se ricordo bene, si annunciarono inchieste, verifiche. Una sorta di “le faremo sapere”. A proposito: ne avete saputo nulla?
Si diceva, che preparavano l'arrivo di diplomatici UE.
La tizia a capo della diplomazia unionale, la sora #Kallas, niente da dire? Le è sfiggito come il contributo che Russia e Cina hanno speso nel secondo conflitto mondiale?
Ci sarebbe poi un altro, piccolissimo aspetto da considerare. Piccolo piccolo.
L’articolo 87 della nostra Costituzione, in merito ai poteri del #PresidenteDellaRepubblica, è abbastanza inequivocabile: «Ha il comando delle Forze armate».
Il capo delle nostre forze armate è lui, Sergio #Mattarella. Di tutte le forze armate: Esercito, Aeronautica, Marina e anche loro, l’Arma dei Carabinieri. La Benemerita è dunque inclusa.
Orbene, fossi uno di quei ragazzi, mi piacerebbe molto che il mio comandante supremo spendesse una parolina pubblicamente, soprattutto laddove a ricoprire tale prestigiosissimo incarico è un signore particolarmente attivo (per la verità, più su altri fronti) nel rimarcare il ruolo del diritto internazionale e nel puntare il dito contro ogni sua violazione da parte di cosacchi brutti e cattivi.
Insomma, parrebbe proprio che siamo tutti uguali dinanzi alla legge internazionale, ma qualcuno forse è internazionalmente più uguale degli altri.
Noi continuiamo ad attendere.
https://x.com/SavinoBalzano/status/2016476560887312788?s=20
Domenica scorsa due #carabinieri italiani in servizio presso il Consolato generale d’Italia a Gerusalemme sono stati fermati in Cisgiordania (nei pressi di Ramallah) mentre effettuavano un sopralluogo per preparare una visita di ambasciatori #UE in un villaggio palestinese.
Parliamo di due militari, in servizio presso una sede diplomatica, impegnati nella preparazione di una visita ufficiale di diplomatici: mi parrebbe, a naso, una leggerissima violazione del diritto internazionale.
La prima versione, la nostra, parlava di un colono fanatico. Peraltro, ricordiamoci sempre che in Cisgiordania #Hamas non c’è. #Israele, quasi a volerci sfottere, ci ha fatto sapere che non si trattava affatto di un mezzo matto invasato: no, era un militare.
Da una parte ci siamo noi che, per certi versi, sminuiamo la questione parlando di uno squilibrato; dall’altra loro che ci dicono che si tratta di un membro delle forze armate.
Chissà se può definirsi atto ostile quando un militare di un Paese mette in ginocchio, con le armi puntate, i militari di un altro Paese, per di più stanziati presso una sede diplomatica. Toccherebbe sentire #Tajani, per il quale certe cose però contano fino a un certo punto, lo sappiamo.
A proposito di Antonio: ha tuonato dalla #Farnesina. Il ministro Tajani era molto, molto arrabbiato. Chissà se era furioso tanto quanto quella volta in cui i soldati israeliani attaccarono deliberatamente i nostri militari, stanziati al confine con il Libano e impegnati nella missione UNIFIL delle Nazioni Unite. Anche allora tuonò e, se ricordo bene, si annunciarono inchieste, verifiche. Una sorta di “le faremo sapere”. A proposito: ne avete saputo nulla?
Si diceva, che preparavano l'arrivo di diplomatici UE.
La tizia a capo della diplomazia unionale, la sora #Kallas, niente da dire? Le è sfiggito come il contributo che Russia e Cina hanno speso nel secondo conflitto mondiale?
Ci sarebbe poi un altro, piccolissimo aspetto da considerare. Piccolo piccolo.
L’articolo 87 della nostra Costituzione, in merito ai poteri del #PresidenteDellaRepubblica, è abbastanza inequivocabile: «Ha il comando delle Forze armate».
Il capo delle nostre forze armate è lui, Sergio #Mattarella. Di tutte le forze armate: Esercito, Aeronautica, Marina e anche loro, l’Arma dei Carabinieri. La Benemerita è dunque inclusa.
Orbene, fossi uno di quei ragazzi, mi piacerebbe molto che il mio comandante supremo spendesse una parolina pubblicamente, soprattutto laddove a ricoprire tale prestigiosissimo incarico è un signore particolarmente attivo (per la verità, più su altri fronti) nel rimarcare il ruolo del diritto internazionale e nel puntare il dito contro ogni sua violazione da parte di cosacchi brutti e cattivi.
Insomma, parrebbe proprio che siamo tutti uguali dinanzi alla legge internazionale, ma qualcuno forse è internazionalmente più uguale degli altri.
Noi continuiamo ad attendere.