Когда разрабатываете свой 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
Привет!
Вчера в Риме прошла совместная акция группы российских активистов в Италии Russi Contro La Guerra и ФБК - акция за запрет выступления Валерия Гергиева в Казерте, запланированного на 27 июля.
Акция вызвала живой интерес у прохожих, как итальянцев, так и иностранцев. Проходившие мимо группы российских туристов одобрительно кивали но старались не задерживаться, возле "нежелательных" для Российской Федерации, материалов. Репрессии режима возможны за любое несогласие.
⚪ Журналист из La Repubblica подробно расспрашивал, что же не так с Гергиевым. Мы рассказали о том, что талантливый дирижёр является "агентом" режима и всегда поддерживал аннексию Крыма и агрессию РФ в Украину.
Теперь ждём публикации.
Ждём вас всех в следующее воскресенье 27 июля к 19:00 в Казерте.
‼️ Нельзя позволить этому концерту пройти, как ни в чем не бывало!
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda#stoppropagandarussa
- Все это время мы были в постоянном контакте с местной полицией, отвечавшей за безопасность протестующих.
Этим утром нам сообщили новости о том, что концерт Гергиева в Казерте отменен! Наша совместная кампания и общая координация сработала. Мы считаем это общей победой, которая доказывает, что все возможно, когда активисты объединяются ради единой цели, а демократия в стране дает им возможность выразить свое мнение❤️
Но мы не расслабляемся! Приезд Гергиева в Италию – лишь одна из многочисленных попыток российских пропагандистов вернуться в европейское информационное поле. Мы считаем, что люди, зарабатывающие деньги на репрессиях анти-военных россиян и на убийствах украинцев, должны нести ответственность за свои действия. Именно поэтому мы будем настаивать, чтобы Италия внесла Гергиева в свои санкционные списки.
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#radicaliitaliani#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda
Il nostro compito è smascherare questa menzogna. Non censuriamo la musica classica, ma ci opponiamo a chi per decenni ha servito Putin e ora vuole incassare soldi e applausi in Italia usando Šostakovič e Rachmaninov! Non permetteremo che la propaganda putiniana penetri ancora una volta in Europa sotto le spoglie di eventi culturali.
😡 Per anni Valerij Gergiev ha dato concerti letteralmente tra le rovine bombardate di Siria, Ucraina e Georgia. Ora arriva al festival “Un’Estate da Re” 🎵 di Caserta per presentare lo Stato russo come qualcosa di grande e sublime, continuatore della tradizione culturale russa. Ma lo Stato russo non ha niente a che fare con la vera cultura e la vera arte, perchè non ha niente a che fare con l'approccio umanistico e l'empatia. Lo Stato russo oggi sa solo uccidere, reprimere e mentire💥.
📢 Invitiamo tutti coloro a cui importa che il direttore d’orchestra di Putin porti in UE i suoi soldi di propaganda a unirsi a noi: la vera cultura è di manifestare contro le violenti stragi in Ucraina e le repressioni in Russia, e difendere i valori umani, dove le vite di vicini e cittadini entrambi contano veramente.
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#radicaliitaliani#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda
❗️ВЫХОДИТЕ С RUSSI CONTRO LA GUERRA ПРОТИВ ВЫСТУПЛЕНИЯ ГЕРГИЕВА В ЕВРОПЕ❗️
📆 Дата и время: 27 июля, 19:00-21:00
📍Место: Piazza Carlo di Borbone, напротив входа в Reggio di Caserta
👔👗Дресс-код: Вечерний. Приходите нарядными, не стесняйтесь прихватить с собой перчатки и вееры! Мы устроим свое культурное событие
Митинг против выступления Валерия Гергиева — "Дирижера путинской войны" состоится 27 июня в городе Caserta, регион Кампания🇮🇹 с 19:00 напротив Королевского Дворца Казерты.
Мы, антивоенные россияне из Russi Contro la Guerra⚪️🔵⚪️,
не можем стоять в стороне, когда путинский пропагандист на деньги от налогоплательщиков ЕС оправдывает авторитарный милитаристский режим, прикрываясь ширмой русского искусства, и оправдывает кровавую путинскую диктатуру, прикрываясь нашим культурным наследием 🏛. Но именно мы, антивоенные россияне должны показать лживость этой параллели. Мы не цензурируем классическое искусство, но мы против тех, кто на протяжении десятилетий прислуживал Путину, и теперь хочет собирать овации и деньги в Италии, прикрываясь Шостаковичем и Рахманиновым! Мы не допустим, чтобы путинская пропаганда проникала в Европу снова и снова под видом культурных событий.
😡 На протяжении многих лет Валерий Гергиев играл на руинах разбомбленных городов Сирии, Украины и Грузии. И теперь он приехал на музыкальный фестиваль “Un’estate da Re” 🎵 в Казерте, чтобы представлять итальянцам современное российское государство как что-то великое и прекрасное, что-то, что продолжает традицию русской культуры. Но мы должны опровергнуть этот тезис и разорвать связь между действительно качественным искусством и путинизмом.
📢 Поэтому мы призываем всех, кому небезразлично, что путинский дирижёр вывозит свои пропагандистские деньги в ЕС, притворяясь светской фигурой, прийти на митинг, чтобы показать, что настоящая культура — это выступать против убийств в Украине и репрессий в России.
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#radicaliitaliani#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda#stoppropagandarussa