Когда разрабатываете свой 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
Вот такой интересный анонс мне в личку прислали
18+ НАСТОЯЩИЙ МАТЕРИАЛ (ИНФОРМАЦИЯ) ПРОИЗВЕДЕН, РАСПРОСТРАНЕН И (ИЛИ) НАПРАВЛЕН ИНОСТРАННЫМ АГЕНТОМ КАВКАЗСКИМ НИКОЛАЕМ ЮРЬЕВИЧЕМ ЛИБО КАСАЕТСЯ ДЕЯТЕЛЬНОСТИ ИНОСТРАННОГО АГЕНТА КАВКАЗСКОГО НИКОЛАЯ ЮРЬЕВИЧА
Федивёрс: понятное погружение в федеративные сети
Федивёрс — экосистема совместимых соцсетей. На первый взгляд она непривычна, но в оффлайне первые шаги делаются проще.
27 сентября (суббота), 17:00, метро Курская.
Наш семинар по информационной безопасности это отличная возможность попробовать что-то действительно интересное. Присоединяйтесь к нам, чтобы узнать больше о Fediverse и его уникальных особенностях!
О чём говорим и что делаем:
Что такое Fediverse?
Простые принципы работы и как сервисы “видят” друг друга.
Как это устроено для пользователя?
Посты, подписки, хэштеги и общение между разными серверами.
Какие проблемы решает структура Fediverse?
Альтернатива централизации: контроль над лентой, переносимость, отсутствие рекламы.
Почему жизнь без алгоритмов — то, что стоит попробовать?
Больше внимания к людям, меньше манипуляций и «скролл-ловушек».
Модерация и свобода слова.
Разные правила на разных серверах; как находить «свой» по ценностям. CW/предупреждения как норма заботы.
Базовая безопасность в федеративных сетях.
Приватность по шагам: профили, видимость, сообщения, «следы».
Как сеть живёт без алгоритмов?
Роль хэштегов, локальных сообществ и ручной подписки; как быстро стартовать.
Практика прямо на месте (по желанию):
😍 Регистрация в Mastodon → первый #introduction (ваше знакомство/самопрезентация) → мы дадим список из 10 подписок, с ними одиночество и фальшивые новости вам не грозят.
👍 Delta Chat/Jami без SIM и номеров мобильника → тестовое сообщение и вход в закрытый чат.
🙈 После короткого выступление наших инфобезников будет возможность пообщаться 1-на-1 или в мини-группу до 6 чел, а может и взять онлайн консультацию, чтобы в личке настроить все по шагам.
Важно: мы не обещаем, что приход лишён рисков. Несмотря на наши меры безопасности, прийти — это смелость. Мы встречаемся, чтобы усилить друг друга и получить инструменты, которые уменьшают уязвимость в сети с которыми каждый из нас уже сталкивается.
💌Для записи на мероприятие пиши на– @markgudman
#Introduction of some #scary movies-📽✨
▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.▾.
▾cannibal
▾chainsaw
▾heunt
▾hes out there
▾insidious
▾the nun
▾pet samatary
🤩@TowardDiscoveringEnglish🤩