Когда разрабатываете свой 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
#African experts meet in #Rwanda for continental textile standardization
African experts have convened in the Rwandan capital #Kigali for the Technical Committee (#TC 53) meeting on the standardization of textiles, textile products, and accessories.
The forum, which ran from Tuesday to Friday, focused on finalizing agreements and establishing key standards and labeling systems for the textile sector, with the aim of strengthening trade and supporting economic growth within the continent's textile industry.
Hermogene Nsengimana, secretary general of the African Organisation for Standardization (#ARSO), highlighted that Africa still faces a significant gap in developing common quality standards.
He added that currently, only about 25 percent of the standards required for all products in the African common market have been established.
Nsengimana said that ARSO has set a target to significantly reduce this gap within the......
https://english.news.cn/africa/20260307/6634375ed4a4474cab2c20d0c4a31253/c.html
🚨Game : TC Games
🤑Refer: High Level Commission
🛃Minimum Deposit : 300Rs
📅Minimum Withdraw : 110Rs
🖥Earn daily : 500-10keasily
🤖Game Link: Join Here
📝Guide:
🔘 Register Using Mobile Number
🔘 Play game and Withdraw and earn High money
🧿Info
🔘 Contact Telegram Support
🔘 Join Telegram Prediction Group1 and Group2
🔘 Only 4-7 Level Sure winning
🔘 Want to become an agent and bonus Contact
🔴Note: Please do your own research (DYOR) before joining to any project.Don't send any fee or penny without doing own research.
#TCgames#TcLottery#Indian#inr#TC#Sponsored#Ad
📈Game : TC Games
💎Refer: High Level Commission
💳Minimum Deposit : 11 USDT/300Rs
💰Minimum Withdraw : 11 USDT/110Rs
🔸Earn daily : 500-10000USDT easily
🤖Game Link: Join Here
📝Guide:
🔘 Register Using Mobile Number ( if you are from Countries other than AFG,IND, PAK, BAN you can simply put your number with any Country code no need of OTP verification)
🔘 Play game and Withdraw and earn High money
📄Info
🔘 Contact
✉️Telegram Support
🔘 Join
✉️Telegram Prediction Group1 and Group2
🔘 Only 4-7 Level Sure winning
🔘 Want to become an agent and bonus Contact
🎁Note: Please do your own research (DYOR) before joining to any project.Don't send any fee or penny without doing own research.
#TCgames#TcLottery#Indian#inr#TC#Sponsored#Ad#USDT