Когда разрабатываете свой 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
Старт #FWQ 2* прошёл. Я занял 11 место. Может показаться, что я расстроен. Пожалуй, я скажу противоположное - доволен, как слон. Рад тому, как получилось настроиться на этот старт эмоционально. Что греха таить. Пришлось откатиться назад в плане показания какого-то высокого уровня на соревнованиях. Но это всё вернётся быстро.
На эти старты было 2 задачи:
Первая: настроиться так, что бы старт не воспринимать как соревнование.
Вторая: сколько дропов - столько трюков, т.е не прыгать прямые прыжки, а если прыгать, то только 1 прямой дроп.
Завтра FWQ 3*. По жеребьёвке я еду под 4 номером🔥
Вот и видео сегодняшнего дня☺️ буду признателен вашей активности в комментариях😉
Мы вчера отлично покатали🤙🏻Как вы видите, сезон в Красной Поляне продолжается, впереди какие-то невероятно мягкие дни, а ещё нет людей!
Приезжайте катать, думаю, вам понравится ;)
Кстати, все райдеры умчали на Эльбрус, я в том числе. Это будут крайние старты в этом сезоне #fwq 2* и 3*.
Честно признаюсь, грустно осознавать, что пришлось отменить поездку в Австрию, Францию и Андорру из-за сложной логистики. А ещё курс евро какой-то бешеный. Как я это понял? Стартовый взнос вместо 12т.р взлетел за 20+т.р🤣
По прямому эфиру стартов на Эльбрусе информация будет после райдерс-митинг😉
#fwq#fwt
Остался 1 этап из 3х для прохождения в FWT на сезон 2022-2023! И сейчас вот эти райдеры занимают верхние строчки. И наша Аня Орлова ❤️ занимает первое место среди сноубордисток.
Пока рано радоваться, впереди этап в Австрии с 1 по 5 апреля. После него и станет известно кто же пройдет в FWT на следующий сезон.
Болеем за нашу Аню и отправляем ей лучики поддержки 🔥🔥🔥
Лыжи мужчины
⛷Max Hitzig
⛷Valentin Rainer
⛷Simon Perraudin
⛷David Deliv
Сноуборд мужчины
🏂Liam Rivera
🏂Christophe Charlet
Лыжи девушки
⛷Megane Betend
⛷Astrid Cheylus
Сноуборд девушки
🏂Anna Orlova
#fwq#fwt
Уже смотрели второй этап Fwq Final в Словакии
Вот небольшая сводка по призовым местам:
Сноуборд женщины
🥇Claire McGregor
🥈Rizzolio Estelle
🥉Anna Orlova
Лыжи женщины
🥇Astrid Cheylus
🥈Megane Betend
🥉Zuzanna Witych
Сноуборд мужчины
🥇Liam Rivera
🥈Enzo Nilo
🥉Alix Soria
Лыжи мужчины
🥇Simon Perraudin
🥈Max Hitzig
🥉David Deliv
#fwq#fwt
Завтра 12.03.22 второй этап FWQ 4* Final в Словакии.
Трансляция в 9:00 на сайте www.freerideworldtour.com или на youtube “freerideworldtourtv”
Anna Orlova стартует первая, а все российские участники выступают под белым флагом.
#fwt#fwq
С этого сезона организаторы Freerider World Tour обновили систему прохождения спортсмена в FWT.
Раньше нужно было занимать места на стартах FWQ разного рейтинга от 2* до 4* и набирать очки, по итогу сезона спортсмен, набравший большее кол-во очков, проходил в FWT.
Теперь по новой системе нужно набрать наибольшее кол-во очков за сезон, попасть в топ 14 фрирайдеров в мире и выиграть ещё 2 старта из 3х, которые называются Freerider World Qualifier FINAL.
Система отбора в FWT усложнилась, но мы должны понимать, что это тоже коммерческий проект. Тем самым организаторы начали привлекать все больше внимания к фрирайду и новым мало известным райдерам со всей планеты.
Предлагаю вам посмотреть первый этап FWQ Final, который проходил сегодня, поверьте, наблюдать за райдерами не менее интересно, чем в FWT.
Freeride World Tour (FWT) - Чемпионат Мира по Фрирайду
Freeride World Qualifier (FWQ) - Кубок мира по Фрирайду
https://youtu.be/0fQAEIksEvk
#fwq#соревнование#сноубординг
Спасибо за поддержку, за то что болели и поддерживали меня на стартах☺️
Соревнование это всегда волнение, в этот раз было реально очень опасно. Много подснежных камней. Это вы увидите в видео, как минимум я цел без потерь. Полным видео поделюсь после объявления результатов:)
В конце января я выиграл этап 4* FWQ в Японии по сноуборду! Никто раньше из России не выигрывал FWQ4* в мужском сноуборде. Это самые рейтинговые квалификационные соревнования в мире!
🏔️Хакуба — один из самых популярных горнолыжных курортов Японии, во время зимних Олимпийских игр 1998 года в Нагано здесь впервые дебютировали соревнования по сноуборду, тем самым став олимпийской дисциплиной.
Но еще это и Мекка фрирайда — в среднем там выпадает 11 метров снега за сезон.
🥇 Igor Ilinykh RUS 81.00 @igor_ilinykh
🥈 Haruki Takeuchi JPN 79.33 @harukitakeuchi
🥉 Juan Tadeo ARG 76.67 @tade_leslie
#япония#фрирайд#fwq#сноуборд#freeriderussia#snowboarding