Когда разрабатываете свой 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
苹果 M4 Pro / Max 款 MacBook Pro 推迟发货时间,M5 Pro / Max 机型有望 1 月 28 日发布
苹果美国官网显示,M4 Pro/Max MacBook Pro 机型供应收紧,发货时间推迟至2月6日后,部分定制机型甚至延至3月17日。这通常是新品发布前的迹象。有消息称,搭载M5 Pro/Max芯片的新款MacBook Pro可能于1月28日悄然上架官网。
标签:#apple#macbookpro
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
Apple unveils new MacBooks, AirPods
Apple unveiled its latest products, including two new MacBook Pro models that use in-house chips, a new generation of AirPods, and a $5-per-month music streaming service
#AppleEvent#MacBookPro#News#Reuters
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖
💥Hub USB Tipo C 6 en 1 DEMKICO
Convierte tu portátil en una estación de trabajo completa
✅OFERTA: 11.99€
❌ Antes: 16.99€
💰Ahorras un 29%🔥
Conexión sencilla y rápida, amplía tus posibilidades de conectividad
👉 Mejora tu experiencia digital ahora
#rebajas#hubusb#adaptadormultipuerto#macbookpro#ofertas#descuentos#tecnologia#rebajasdeinvierno
🛰️Oferta publicada en Tecnología