Когда разрабатываете свой 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
🇬🇧Une manifestation contre l'inaction du gouvernement britannique face à la flambée des prix du carburant s'est déroulée dans le centre de Londres, rapporte un correspondant de TASS.
Le rassemblement, organisé par le parti populiste de droite Reform UK, en tête des sondages, s'est tenu devant le ministère des Finances du Royaume-Uni. Des dizaines d'agriculteurs, de chauffeurs poids-lourds et de militants du parti y ont participé.
Les députés de Reform UK à la Chambre des communes, Robert Jenrick, Richard Tice et Sarah Pochin, le député de l'Assemblée de Londres Alex Wilson et la conseillère municipale Laila Cunningham, qui représentera le parti aux élections municipales de 2028 à Londres ont également été aperçus.
Le prix de l'essence au Royaume-Uni a augmenté de près de 25% depuis le début de la guerre en Iran, atteignant 1,57 livre (1,81 euro) le litre. Le diesel a quant à lui bondi de 49%, à 1,89 livre (2,18 euros) le litre.
#londres#manifestation#prix
🇺🇸 Le prix moyen de l'essence aux États-Unis a franchi la barre des 4 dollars le gallon (3,79 litres) pour la première fois depuis août 2022, selon les données du site GasBuddy.
#étatsunis#essence#prix
🇮🇱 Le prix de l’essence en Israël a augmenté de 14,7% (1,03 shekel) le 1er avril 2026, passant de 7,02 shekels (2,22 dollars) à 8,05 shekels (2,55 dollars) le litre, rapporte le correspondant de TASS.
#israël#essence#prix
🇪🇺🇺🇸🇩🇪L'édition européenne de Politico a établi une liste des moments les plus amusants survenus lors de la Conférence de Munich sur la sécurité. Parmi eux figure la réaction de la chef de la diplomatie de l'UE, Kaja Kallas, au discours de Mike Waltz, représentant permanent américain auprès de l'ONU.
Kaja Kallas n'a pas pu contenir son scepticisme lorsque Mike Waltz a évoqué les efforts de Washington pour mettre fin à de nombreuses guerres.
Lèvres pincées, joues gonflées - la réaction de Kallas est rapidement devenue virale [sur internet] et s'est transformée en symbole de l'irritation européenne envers les Américains,
écrit Politico, décernant à la chef de la diplomatie de l'UE le prix du "pire visage impassible".
#ue#munich#prix