Когда разрабатываете свой 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
A newly created wallet received 488,599 $HYPE worth $17.18M from #FalconX.
Address: 0x9ff9dbfadad1def3075d340bfc151c9392526880
https://x.com/OnchainLens/status/2039867557751214144
Follow @onchainlens for more onchain updates
A newly created wallet received 450 $BTC worth $30.27M from #FalconX.
Address: bc1q3aydm3nd6c7hejscde0hsdzsf4dsxkxd0l8f0dwn45y2znlh0dxq2aga8r
https://x.com/OnchainLens/status/2038782817791066483
Follow @onchainlens for more onchain updates
The whale "0xfb7" has further bought 20,013 $ETH ($59M) from #FalconX. The whale now holds 80,115 $ETH, worth $236.55M. Addresses: - 0xfb78aa8f38843629e89951d9db6fdc398d75e0a3 - 0xd4584bf988c9e8994688b56484e2f74ceaeefb20 https://x.com/OnchainLens/stat…
Just In: Arthur Hayes (@CryptoHayes) sent 3,597,122 $ENA ($499.34K) and 327,869 $PENDLE ($501.64K) to #FalconX and likely to send more fund.
8 hours ago, he sent 2.31M $LDO worth $980.3K to #FalconX.
https://intel.arkm.com/explorer/entity/arthur-hayes
https://x.com/OnchainLens/status/2018576988945178669
Follow @OnchainLens for more Onchain Updates
While others are panic selling, whale "0xFB7" further bought 13,000 $ETH ($30.93M) from #FalconX.
This brings the whale's holdings to 173,582 $ETH ($407.62M) and 750 $cbBTC ($59M).
https://intel.arkm.com/explorer/address/0xFB78AA8F38843629e89951D9db6FdC398d75e0A3
https://x.com/OnchainLens/status/2018471314684829769
Follow @OnchainLens for more Onchain Updates.
The whale "0xFB7" has further bought 20,000 $ETH for $56.03M from #FalconX.
This brings the whale's holdings to 110,154 $ETH, valued at $311.26M in staking.
Address: 0xFB78AA8F38843629e89951D9db6FdC398d75e0A3
https://x.com/OnchainLens/status/2017028375014154514
Follow @onchainlens for more onchain updates
Bitmine (@BitMNR) bought 20,000 $ETH ($58.22M) from #FalconX and further staked 184,960 $ETH, worth $538M.
In total, they have staked 2,128,160 $ETH, valued at $6.22B.
https://intel.arkm.com/explorer/entity/bitmine
https://intel.arkm.com/explorer/address/0x0E0d36c115F66a08958756d860E16b2FbE5AadbF
https://x.com/OnchainLens/status/2015932786839113916
Follow @onchainlens for more onchain updates
Bitmine ( @BitMNR) has received 31.75K $ETH worth ($93.50M) from #FalconX
Address - 0x1C79347985300642be2fB93b44BB6C4A2e46CEf8
https://x.com/OnchainLens/status/2003525975980568644
Follow @onchainlens for more onchain updates
3 newly created wallets received 2,509 $BTC worth $221.07M from #FalconX in the past 12 hours.
https://intel.arkm.com/explorer/address/35hG5iJGYsojY7F6jdHEQ3PjkTzdpvv2Vd
https://intel.arkm.com/explorer/address/3Ev15ETyusbhULAxtPs1vXXrAqJHfDbsWt
https://intel.arkm.com/explorer/address/32t7CyeQ5HMSnnnmLEKYJhqBocEMPHEVCq
https://x.com/i/status/2002172199269265678
Follow @onchainlens for more onchain updates
A newly created wallet received 836.4 $BTC, worth $73.67M, from #FalconX.
Address: 32t7CyeQ5HMSnnnmLEKYJhqBocEMPHEVCq
https://x.com/OnchainLens/status/2002002079565635946
Follow @onchainlens for more onchain updates
Ethena Labs (@ethena_labs) has sent 23.3M $ENA worth $4.74M into #FalconX, likely to sell 9 hours ago.
The wallet still holds 123.4M $ENA worth $25M
Address: 0xf0465df588906d820f831970262bdcca0f2b3e2d
https://x.com/i/status/2001968278785368460
Follow @onchainlens for more onchain updates