Когда разрабатываете свой 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
Visionaries, it's time to expand our horizons & explore another new platform together!! 🤜🤛
Join us on #Threads for exclusive content, engaging discussions, and endless opportunities to WIN! 🔝
Show us your love on #Threads too!
@vision11official
Please follow for latest update👇👇
https://www.threads.net/@vision11official
Threads – twitter dasturiga o’xshash bo'lgan dastur bo'lib, faqat Instagramning matnga asoslangan versiyasi hisoblanadi.
ℹ️ Bu dastur instagram bilan bog'langan va siz dasturdan foydalanishingiz uchun instagram akkaunt talab qilinadi.
😎Threadsni o'rnatganlar bo'lsa kompyuter bilimlari kanalimiz sahifasiga obuna bo'ling – http://threads.net/@kompyuter_bilimlari
😄 Rasmga baxo berish esdan chiqmasin-aa))
👉🏼Birinchi raqamli Windows Blog | #threads / #atama
Сколько времени вы проводите в соцсетях?🧐
Кажется, скоро будем проводить еще больше, ведь в июле появилась новая сеть #Threads, которую все называют аналогом #Twitter.
💼Некоторые бренды уже начали использовать новый инструмент в работе. Оставляйте комментарии, мы соберем подборку ваших мнений в наш канал в Дзене.
Как вы оцениваете запуск новой социальной сети Threads? Будете ли использовать в работе? И как?
Meta 旗下社交媒体 Threads 移动端日活超越 X 平台,网页端差距悬殊揭示社媒格局新变化
Similarweb报告显示,Threads移动端日活达1.415亿,已超越X平台。Threads的增长得益于Meta的交叉推广与功能完善;而X平台受AI争议及监管调查影响,美国日活大幅下滑。尽管X在网页端仍具绝对优势,但其领先地位正被削弱,Threads正逐渐成为主流社交工具。
标签:#threads#x
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot