Когда разрабатываете свой 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
📩#GALAUSDT 30m | Mid-Term
📉Long Entry Zone: 0.01628-0.01585
🎯 - Strategy Accuracy: 94.29%
Last 5 signals: 100.0%
Last 10 signals: 94.12%
Last 20 signals: 92.59%
⏳ - Signal details:
Target 1: 0.01646
Target 2: 0.01663
Target 3: 0.01681
Target 4: 0.01733
_____
🧲Trend-Line: 0.01585
❌Stop-Loss: 0.01567
💡After reaching the first target you can put the rest of the position to breakeven
📩#GALAUSDT 30m | Mid-Term
📉Long Entry Zone: 0.0166-0.0156
🎯 - Strategy Accuracy: 90.52%
Last 5 signals: 100.0%
Last 10 signals: 100.0%
Last 20 signals: 100.0%
⏳ - Signal details:
Target 1: 0.0168
Target 2: 0.0170
Target 3: 0.0172
Target 4: 0.0178
_____
🧲Trend-Line: 0.0156
❌Stop-Loss: 0.0154
💡After reaching the first target you can put the rest of the position to breakeven
📩#GALAUSDT 30m | Mid-Term
📉Long Entry Zone: 0.03608-0.03387
🎯Accuracy of this strategy - 90.50%
- ⏳ - Signal details:
Target 1: 0.03651
Target 2: 0.03695
Target 3: 0.03738
Target 4: 0.03868
_____
🧲Trend-Line: 0.03387
❌Stop-Loss: 0.03346
💡After reaching the first target you can put the rest of the position to breakeven
#GALAUSDT After the completion of the pattern, we see the breaking of the downward trend line, which can be considered to start the upward movement, but if the price is not supported, the range of 0.01692 - 0.01775 can be considered for support.
📩#GALAUSDT 30m | Mid-Term
📈Long Entry Zone: 0.00333-0.00323
🎯 - Strategy Accuracy: 87.82%
Last 5 signals: 90.0%
Last 10 signals: 75.0%
Last 20 signals: 75.0%
⏳ - Signal details:
Target 1: 0.00337
Target 2: 0.00340
Target 3: 0.00344
Target 4: 0.00355
_____
🧲Trend-Line: 0.00323
❌Stop-Loss: 0.00320
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000037892
📩#GALAUSDT 30m | Mid-Term
📉Short Entry Zone: 0.00352-0.00377
🎯 - Strategy Accuracy: 92.33%
Last 5 signals: 90.0%
Last 10 signals: 90.0%
Last 20 signals: 90.0%
⏳ - Signal details:
Target 1: 0.00344
Target 2: 0.00336
Target 3: 0.00329
Target 4: 0.00305
_____
🧲Trend-Line: 0.00377
❌Stop-Loss: 0.00385
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000036834
🌐 New Popular Cryptocurrencies Now Live on SLEX Exchange! 🎉
🚀 SLEX has expanded our trading offerings with the addition of Injective (INJ), Arbitrum (ARB), and Gala (GALA)!
🔹 Cryptos Listed:
- Injective (INJ)
- Arbitrum (ARB)
- Gala (GALA)
🔹 Trading Pairs:
- INJ/USDT
- ARB/USDT
- GALA/USDT
🤑Trade these dynamic assets to boost your earnings and diversify your portfolio on the SLEX Centralized Exchange!
#SLEXUpdate#INJUSDT#ARBUSDT#GALAUSDT#SpotMarket#SLEXTrading#TradeOnSLEX
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter