Когда разрабатываете свой 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
Перелет Санкт-Петербург - Сургут, авиакомпания UTair, Boeing 737-800. Три с половиной часа пролетели в полусне. Обслуживание фактически отсутствует.
Ииии... Аэропорт в Сургуте, переполненный с утра, с трудом вмещающий в себя путешественников.
И рейс в Белоярский через несколько часов.
#UTair
Boeing 737-800 авиакомпании UTair. Ничего нового, перелет в формате лоукост (т.е. практически без обслуживания). Вылет в 00-20, практически сразу провал в сон...
#UTair
Итак. Авиакомпания ЮТэйр. Рейс Москва (Внуково) - Дубай (Аль-Мактум).
Опытный Boeing 767, широкофюзеляжный самолет на 249 пассажиров.
Да-да, обычно все мы летаем ютами в Сургут, Нягань и Белоярский, но Дубай тоже сойдёт )))
А в Дубае будет транзит и пересадка на следующую авиакомпанию...
#UTair
✈️ 7700
📌B762 рейса UT716 «Дубай-Москва» подал сигнал бедствия
🔵Борт сжигал топливо и сделал более 10 зон ожидания
🔵За его полётом наблюдало около 50 тысяч человек, сделав аварийный рейс самым просматриваемым в мире
⬅️На данный момент самолёт приземлился в аэропорту вылета
Лёгкое небо
#aviation#news#UTair
Вдогонку за рассветом летим в Белоярский!
Турбовинтовой ATR 72-500, ловко жужжа пропеллерами, летит из Сургута за солнцем и теплом. Минус 20.
И лучший город Земли.
#Белоярский#ХМАО
#UTair
Люди и техника работают на пределе возможностей. Подобного по масштабу поиска в Красноярском крае ещё не было.
Семью Усольцевых ищут.
Каждый день — новая попытка, новый маршрут. Заканчиваются ресурсы, устают люди... Добровольцев отряда «ЛизаАлерт» держит надежда и двигают вперёд ваши неравнодушие и помощь.
Для авиации погода нелётная, но БПЛА могут подняться. Сегодня с добровольцем отряда из Москвы доставлены на место поиска три беспилотника с запасом аккумуляторов. БПЛА, надёжные, устойчивые к экстремальным условиям, уже обследуют территорию.
На земле продолжают отработку задач пешие группы и проходимая техника; работают кинологи ГУФСИН, сотрудники полиции и Следственного комитета, курсанты ВИИ СФУ. Привлечены спелеологи и альпинисты. Надёжный тыл добровольцам обеспечивает Красноярское отделение Российского Красного Креста. Плечом к плечу с нами многие дни территорию обследуют добровольцы ПСГ «Сибирь», объединения «Азимут», КРОО СПР «Поиск пропавших детей им. О. Василишиной».
Протяжённость треков за все дни поиска — более 4000 км.
Мы благодарны каждому, кто помог: присоединился к поиску, передал оборудование, доставил к месту поисково-спасательных работ людей и технику.
Благодаря авиакомпании UTair на поиск были доставлены 3 БВС с дополнительными аккумуляторами. А программа лояльности #UtairStatus позволяет нам доставлять специалистов на место поиска, как произошло и в этот раз.
Большое спасибо авиакомпании #UTair за проект #ПоделисьМилями с #ЛизаАлерт. Огромное спасибо всем, кто делится милями с добровольцами.
Если вы хотите помочь или обладаете информацией о местонахождении пропавших, пожалуйста, позвоните на горячую линию отряда «ЛизаАлерт»:
8-800-700-54-52 (бесплатно и круглосуточно) и 112.
#отчетопоиске#Усольцевы#ТудаГдеВасЖдут