Когда разрабатываете свой 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
#MANA/USDT analysis :
#MANA is currently in a correction phase. It is advisable to wait for the price to test the support zone before considering a long entry. With bullish momentum expected to continue, the price is likely to revisit previous highs.
TF : 1W
Entry : $0.4158
Target : $0.8556
SL : $0.3117
#MANA/USDT analysis :
#MANA is currently forming lower lows (LLs) and lower highs (LHs) while trading near the resistance zone. The price is expected to decline from this level and test previous lows. For a short entry, it is advisable to wait for a break below the $0.3370 level.
TF : 1D
Entry : $0.3370
Target : $0.2713
SL : $0.3752
#MANA is currently trading around $0.2843, testing a critical support zone ($0.25 - $0.28).This level previously acted as a strong demand zone in September 2024 before the major uptrend.🔥✅
Further,MANA is testing a critical support zone ($0.25 - $0.28). If buyers hold this level, we could see a bounce toward $0.35 - $0.38. However, a breakdown below $0.25 could lead to a further drop toward $0.20 - $0.22 .🔥✅😍👀✅🔥
#MANA has tested the SR zones and formed upside liquidity. It is forming a correction/HL till golden ratio and took small correction.🔥✅
Further, MANA have potential to go for 500% profit in ALT season .🔥✅😍👀✅🔥😳
💰#MANA has a rising wedge pattern on 6H Time frame,we expect another bullish leg from the Green zone,send it to the next level 🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️