Когда разрабатываете свой 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
Black Sign — не музейная реконструкция. Это алхимическая лаборатория, где оригинальные элементы прошлого переплетаются с современным видением дизайнера.
Благодарим Clovelly Pub за предоставленную для съемки площадку.
Для оформления заказа -@infobeliefmoscow
#blacksign
Black Sign - Top Notch Garments Warranted
It is for you to decipher "THE BLACK CODE".
Новое поступление от Black Sign уже в магазине и онлайн.
Благодарим Clovelly Pub за предоставленную для съемки площадку.
Для оформления заказа -@infobeliefmoscow
#blacksign
BLACK SIGN
Бренд BLACK SIGN основал Таканори Окамото — коллекционер винтажной одежды и владелец культового магазина MOM&POP в Нагое. Он переосмыслил традиции викторианского портного дела, создавая вещи вне индустриальных шаблонов. BLACK SIGN вдохновлён эстетикой ушедших эпох — от европейской знати до тайных обществ, сочетая редкие материалы и ручную работу в духе «Чёрного Кода».
Благодарим Clovelly Pub за предоставленную для съемки площадку.
Для оформления заказа -@infobeliefmoscow
#blacksign
Массивная латунная цепь Black Sign с деталями в стиле редких ювелирных изделий Викторианской эпохи.
Black Sign jewelry available in store: https://beliefmoscow.com/collection/black-sign
#blacksign
#beliefmoscow
Бронзовое пресс-папье Black Sign, созданное совместно с брендом Black Boots из префектуры Тояма, который развивает традиции и технологии ювелирного дела прошлых столетий. Прообразом этой вещи послужила статуэтка Викторианской эпохи, сделанной около 120 лет назад лиссабонским мастером для рынка Европы.
Коллекция Black Sign доступна онлайн в нашем интернет-магазине: https://beliefmoscow.com/collection/black-sign
#blacksign
#beliefmoscow
Серебряная подвеска Black Sign в Викторианском стиле в виде черепа, созданная совместно с японской ювелирной мастерской Black Boots. Дизайнеры черпали вдохновение в глубинах прошлого: более 150 лет назад, во времена дворцовых переворотов, карманные часы переделывали в сосуды для яда. Тандем переосмыслил механизм XIX века и спрятал его в верхней части челюсти черепа.
Online: https://beliefmoscow.com/collection/black-sign/product/poison-in-the-brain-silver-neckless-charm
#blacksign
#blackboots
#beliefmoscow
CHOOSE SOCKS
Носки от SAINT MX6, Yoko Sakamoto, Black Sign, Cav Empt
Для оформления заказа, уточнения цен и размеров - @infobeliefmoscow
#saintmx6#yokosakamoto#blacksign#cavempt
One Suggestion.
Новое поступление от Old Joe & Co., Black Sign, Yoko Sakamoto и Native Sons уже доступно для заказа.
Для оформления заказа -@infobeliefmoscow
#oldjoe#blacksign#yokosakamoto#nativesons