Когда разрабатываете свой 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
💬Commentaire du directeur général de Rosatom Alexeï #Likhatchov sur la situation à la centrale nucléaire de Zaporojié et à Énergodar
« Pour le troisième jour consécutif, nous constatons une activité très intense de l’armée ukrainienne à Énergodar, une des villes les plus importantes pour Rosatom. Il s’agit de frappes visant les infrastructures urbaines, notamment la station de distribution de gaz et des zones résidentielles. Avant-hier, plus de 20 explosions ont été enregistrées. Cinq voitures ont brûlé et un véhicule de pompiers a été gravement endommagé », a déclaré Alexeï Likhatchov.
⏺ Selon lui, plusieurs impacts ont visé directement le bâtiment de l’administration municipale. Un des drones kamikazes a frappé l’entrée du sous-sol qui sert d’abri antiaérien aux employés de la mairie. À la suite de l’explosion, un générateur diesel et une voiture garée à proximité ont pris feu. Du 30 avril au 3 mai, la ville a subi une coupure totale d’électricité en raison de dommages causés aux équipements électriques de la région. Le 5 mai, l’approvisionnement en électricité a été entièrement rétabli.
« Des installations de la centrale de Zaporojié ont également été attaquées. Le samedi 2 mai, un drone a frappé le bâtiment du laboratoire de suivi des radiations. Il n’y a pas eu de victimes. Nous enregistrons presque quotidiennement des frappes sur la sous-station électrique "Radouga", ce qui rend les travaux de réparation impossibles », a-t-il souligné. « Nous avons déclaré à maintes reprises que prendre pour cible une centrale nucléaire est un geste totalement irresponsable de la part des autorités ukrainiennes. Dans toute centrale de Rosatom, la sécurité des installations est une priorité absolue », a ajouté Likhatchov.
RT en français • Osez questionner !
ℹ️Le site de la centrale nucléaire de Bouchehr en #Iran reprend progressivement ses activités : environ 2 200 employés sont déjà revenus sur le chantier.
C’est ce qu’a annoncé le directeur général de Rosatom, Alexeï #Likhatchov. Selon lui, la situation reste globalement calme et le nombre de travailleurs iraniens continue d’augmenter.
Il a ajouté que la centrale se tenait prête à une mobilisation rapide et au retour complet de son personnel en République islamique dès que les risques de reprise des hostilités seront écartés.
RT en français • Osez questionner !
🔵Ursula von der Leyen a récemment reconnu que la plus grande erreur était de renoncer à l’énergie nucléaire en #Europe.
Alexeï #Likhatchov, directeur général de Rosatom, a pris cette nouvelle avec le sourire.
RT en français • Osez questionner !
💬Le 21 avril, Alexeï #Likhatchov, directeur général de la société d'État Rosatom, a effectué une visite de travail en #Turquie.
« La priorité absolue de la société publique Rosatom est de procéder au démarrage du premier réacteur de la centrale nucléaire d’Akkuyu, de connecter l’unité au réseau et de fournir la première électricité », a-t-il souligné dans son discours.
RT en français • Osez questionner !
❗️La situation à la centrale nucléaire de #Bouchehr en Iran continue de se détériorer en raison des bombardements, a déclaré Alexeï #Likhatchov.
Un projectile a explosé pour la troisième fois près d’une station de pompage qui assure notamment l’approvisionnement en eau des équipements du réacteur, ce qui constitue une menace directe pour la sûreté nucléaire, a souligné le chef de Rosatom.
RT en français • Osez questionner !
⏺Entre mémoire de #Tchernobyl et « fièvre atomique »
À l’occasion des 40 ans de la catastrophe de Tchernobyl, Alexeï #Likhatchov, directeur général de #Rosatom, insiste sur les leçons tirées de ce désastre, présenté comme un tournant majeur pour la sûreté nucléaire, et rend aussi hommage aux liquidateurs.
Cet événement a conduit à une transformation profonde du secteur : renforcement des normes, développement de systèmes de sécurité passifs et réduction drastique du facteur humain dans la gestion des centrales. La filière russe repose désormais sur des principes de sécurité inconditionnels, tout en intégrant les technologies les plus avancées.
Dans ce contexte, Moscou plaide pour une adaptation des règles internationales afin d’accompagner les nouvelles technologies, tout en s’appuyant sur l’expérience acquise depuis une autre catastrophe, celle de Fukushima.
RT en français • Osez questionner !