Когда разрабатываете свой 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
Ходить в баню летом, в жару, вредно... ??
Это не так! Действительность прямо противоположна! Во-первых, летом гораздо сильнее забиваются поры, ведь мы ходим в открытой одежде! Во-вторых, кожа, подвергается воздействию УФ-лучей, и необходимо избавляться от появляющихся продуктов распада не только процедурами парения, но и пилингами, которые профессионально проведут наши банщики!Тем более в нашей бане Вы всегда сможете охлаладиться не только в прохладном бассейне, но и нырнуть в матушку-Волгу!
В третьих, не стоит забывать о полезных свойствах бани для восстановления сосудисто - сердечного ритма, вывода вредных веществ из организма и похудения, которые так важны многим, к лету!
По этому не бойтесь баловать себя походами в баню, даже летом!
____________
Забронировать баню - легко:
Тел.8(831)200-49-38
Более подробно на сайте в описании профиля.
#банянадровах#сауна#нновгород#пар#здоровье#здесьпарятвениками#парнадрекой#волга#бассейн#река#ресторан#отель#bani#sauna#instagram#photo#top#par
Пока погода за окном продолжает впечатлять нас солнечными и теплыми деньками, мы продолжаем радовать своих гостей кулинарными новинками и вкусными открытиями от нашего Шеф-повара.
Паста "Четыре сыра" , это итальянская паста ручной нарезки "Орекьетти", сыры "Горгонзола", "Гауда", "Пармезан" с трюфелем и нежная сливочная заправка!
Спешите попробовать посетив наш ресторан на Воде или заказать отдыхая в нашей бане на дровах, оздоровительного комплекса Усадьба Банная!
____________________
Узнать более подробно/забронировать
8(831)200-49-38
Или на сайте
bani52.ru
#паста#сыр#кватро#4сыра#баня#еда#ресторан#пармезан#сливки#вкусно#здесьпарятвениками#банянаводе#банянадровах#парнадрекой#усадьбанная#нновгород#нн#нижний#food#eda#paste#cheese#restaurand#sauna#par#чан#dinner#instagram#like#love