Когда разрабатываете свой 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
С 11 ноября 2022 года по 15 марта 2023 года в Киноцентре Ленфильм открыта выставка «Динара Асанова. Незнакомка» Сегодня – последний день работы выставки, посвящённой 80-летнему юбилею замечательного советского кинорежиссёра Динары Асановой.
С 12.00 до 20.00,
вход свободный.
3 этажа:
Инсталляции, артефакты, реконструкции костюмов главных героев, показ последнего и незаконченного фильма Асановой «Незнакомка», специальный саундтрек и выставка лентикулярных принтов по мотивам любимых лент от Doping Pong.
Все это – сегодня и больше никогда.
www.dinaraasanova.ru
«Муха+Фёдорова=Любовь», digital art by Doping Pong, 2022
лентикулярная печать: magicvision.ru
Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке «Динара Асанова. Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«Александру Сергеевичу хорошо!…», Портрет Андрея Лаврикова, digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке: «Динара Асанова.Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«Земляничное озеро», digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке: «Динара Асанова.Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«Sweet seventeen», digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке: «Динара Асанова.Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«ИО:Исполняющая обязанности Купидона», digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке: «Динара Асанова.Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«Ученица чародея», digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке «Динара Асанова. Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«Красавица и чудовища», digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке: «Динара Асанова. Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
«Братья Мухины, или Музыка и спорт», digital art by Doping Pong, 2022 лентикулярная печать: magicvision.ru Эту и другие картины арт-группы Doping Pong по мотивам фильмов Динары Асановой можно увидеть на выставке: «Динара Асанова. Незнакомка» в Киноцентре Ленфильм до 15 марта #dopingpong#dinaraasanova
Сложно поверить в такое. Но вчера нашу выставку «Динара Асанова.Незнакомка» поcетила великий монтажёр и легенда советского кинематографа Тамара Липартия. Вот она позирует с ассистентом Динары - Евгением Николаевичем Ставровым на фоне афиши Doping Pong к их последнему и незавершенному фильму «Незнакомка» . Поклонился до пола и поцеловал руку Тамаре за всех зрителей. Ей все понравилось. #динараасанова#dinaraasanova
Выставка «Динара Асанова. Незнакомка» открыта до 15 марта 2023 года.
Кураторы выставки — арт-группа Doping Pong.
Выставка работает ежедневно
с 12:00 до 20:00.
Вход свободный.
Санкт-Петербург, КВЦ Ленфильм,
Каменноостровский, 10
Вас ждут
3 этажа, 5 пространств,
инсталляции, артефакты, оригинальный саундтрек, реконструкции костюмов главных героев, выставка лентикулярных принтов по мотивам фильмов Динары Асановой от пионеров цифрового искусства России, настоящий школьный класс с углублённым изучением хорошего кино, рассказывающий о биографии и фильмографии гениального кинорежиссёра, а также – кинозал, в котором без остановки идёт 50-минутный монтаж последнего, незавершённого, чудом сохранившегося фильма Динары «Незнакомка».
Добро пожаловать!
#dopingpong#динараасанова#dinaraasanova