Когда разрабатываете свой 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
🚨 GitHub 监控消息提醒
🚨发现关键词:#Bypass#OTP
📦项目名称:OTP-Bot-One-Time-Password-Telegram-Api-Paypal-Whatsapp-Verification-Bypass
👤项目作者:B4BREAON
🛠开发语言: JavaScript
⭐Star数量: 0 | 🍴Fork数量: 0
📅更新时间: 2026-04-12 10:01:05
📝项目描述:
victim’s digital banking account, the attacker feeds the OTP bot with the consumer’s phone number and the name of the bank. These inputs prompt the OTP bot to initiate a call to the victim and dupe them into divulging the 2FA code (OTP or token)
🔗点击访问项目地址
🚀Airdrop : OctoPow
🎁Reward: $100 OTP per winner
🥞Winners : 10,000
💻Distrubution: 30 Oct 2022
🔘End Date: 28 Oct 2022
Airdrop Link : Click Here
📌Steps to Enter Airdrop :
▪️ Join Telegram Channel & Group
▪️ Follow Twitter
▪️ Like & RT pinned post + TAG 3 friends with hashtag #OTP#ETHW
▪️ Join Discord Sever
📃Information
The OctoPowswap protocol is a peer-to-peer system designed for exchanging cryptocurrencies (ERC-20 Tokens) on the Ethereum POW blockchain.
🌎Website: https://octopow.finance
Disclaimer: Please do your own research before joining to any airdrops project, also airdrop is 100% free. Don't send any fee or penny for receiving airdrop tokens. Just join airdrop for free!
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Венгриянинг энг йирик “OTP” банки бошқаруви раиси Шандор Чаньини қабул қилди.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял председателя правления крупнейшего венгерского банка «OTP» Шандора Чаньи.
#Mirziyoyev#qabul#OTP#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
🚨 GitHub 监控消息提醒
🚨发现关键词:#Bypass#AV#OTP
📦项目名称:OTP-Bot-One-Time-Password-Verification-Bank-Paypal-Bypass-2FA
👤项目作者:B4BREAON
🛠开发语言: JavaScript
⭐Star数量: 0 | 🍴Fork数量: 0
📅更新时间: 2026-04-09 16:01:16
📝项目描述:
OTPBYPASS Bot sends a post request to the api, which will save the call into a sqlite DB and send the call to the custom twilio API.Google,Snapchat,Instagram,Facebook,Whatsapp,Twitter,Amazon
🔗点击访问项目地址
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев "OTP Bank Group" директорлар кенгаши раиси Шандор Чаньи билан учрашув ўтказди.
—
Президент Республики Узбекистан Шавкат Мирзиёев провел встречу с председателем совета директоров «OTP Bank Group» Шандором Чаньи.
#Mirziyoyev#uchrashuv#OTP#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X