Когда разрабатываете свой 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
🆓REDEEM CODES🆓
🎁Reverse: 1999 #October#Codes
🎮Download Reverse 1999 v2️⃣.8️!!!
【 Reverse: 1999 v2.8 Codes 】
✨🎁【 NoWayBack 】NEW!! - Get 20k sharpodonty, 10k dust, two fine insight packages, and 30 clear drops
✨🎁【 1999happy2ndanniv 】NEW!! - Get 1k clear drops
...
For a complete code list for Reverse 1999, go to 🎁👉Reverse: 1999 Redeem Codes (October 2025).
Add @APKFreeDownloader_Bot to get any apk you want.
Wikipedia每日一图(#October 31, 2025)https://ift.tt/QR7ezMr
Illustration of Davy Jones sitting on his locker, wearing a pirate captain's uniform. Today is Halloween.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 30, 2025)https://ift.tt/O1FZynC
Schwetzingen Palace gardens, Schwetzingen, Germany: view from the Garden Theatre to the Temple of Apollo.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 29, 2025)https://ift.tt/vGamzqS
Portrait of a Peacock dance performer during the harvest festival of Thai Pongal in the Indian states of Tamil Nadu and Kerala.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 28, 2025)https://ift.tt/cY3MkvR
Gotland Grand National 2023. Gotland Grand National has long been considered the world’s largest Enduro competition and was first run in 1984.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 27, 2025)https://ift.tt/9bxATRS
A red squirrel (Sciurus vulgaris) eating a nut in Bednarski Park (Kraków, Poland).. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 26, 2025)https://ift.tt/rb7GJzK
A beach chair on the beach of Juliusruh is illuminated by the rising morning sun.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 25, 2025)https://ift.tt/EGTsNAS
African blue flycatcher (Elminia longicauda) at Kibale forest National Park, Uganda.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 23, 2025)https://ift.tt/r3K6aHY
American actress Margaret Qualley at 70th Berlin International Film Festival. Today is her birthday.. 了解更多 . #Wikipedia每日一图
Wikipedia每日一图(#October 22, 2025)https://ift.tt/2alTmRv
Mural Kinderfreuden by German painter Dieter M. Weidenbach. Today is his 80th birthday.. 了解更多 . #Wikipedia每日一图