Когда разрабатываете свой 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
Xiaomi Pad 7S Pro 12.5 - China - OS3.0.303.0.WOTCNXM (Android 16)
🚨 New internal test version detected! #internal
📆2026/04/29 📱#violin
🔗@xiaomiui | @miui_download | @hyperosfirmware | HyperOS Updates | XimiTime
Xiaomi Pad 7S Pro 12.5 - China - OS3.0.302.0.WOTCNXM (Android 16)
📆2026/03/31 #release📱#violin
📥Recovery ROM
📝Changelog:
[System]
Updated the security patch to August 2025. Increased system security.
🔗@xiaomiui | @miui_download | @hyperosfirmware | HyperOS Updates | XiaomiTime
今天分享一首Violin Sonata No.5, "Spring"~听的时候觉得和Pastoral Symphony跟姐妹似的,都非常lyrical,而且都是F major~说是Violin Sonata,其实原题是Sonatas for Piano and Violin,钢琴的角色也很重要~
#Beethember#Beethoven#violin
https://www.youtube.com/watch?v=tERwEDWh-ko
上周群里说起了Sibelius的Violin Concerto,鄙人找了找Sibelius其他的violin piece,发现了这部5 pieces for violin and piano还蛮喜欢的~
#sibelius#violin#piano
https://www.youtube.com/watch?v=qD-zdXErpRo
今天是勃拉姆斯和柴可夫斯基的生日~今天分享的是大家耳熟能详的勃拉姆斯的Violin Sonata No.1 in G Major第一乐章。这首Violin Sonata 又叫做 Regensonate,是因为取材于他自己的一首艺术歌曲Regenlied,虽然旋律上的运用在第三乐章中更多,在第一乐章中我们多次听到的有三个音符组成的长短长的motif也是来自于Regenlied,成为贯穿全曲的线索。
https://www.youtube.com/watch?v=TbgknpFu8Mw
#yearOfWonder#brahms#violin
ref: Kelly Dean Hansen对于这首作品的细节分析
http://www.kellydeanhansen.com/opus78.html
The Handover — The Handover (Sublime Frequencies, 2024)
#oud#violin#synth#Egypt
The Handover — проект Али Иссы, Аймана Асфура и Йонаса Камбиена, исследующий связь между египетской музыкальной традицией и современными импровизационными подходами. Одноименный их коллективу альбом музыканты записанный в Александрии в январе 2023 года.
🔗Bandcamp
Perelaar — De Ridder In Het Riet (Stoof, 1981)
#traditional#flute#mandolin#accordion#violin#Netherlands
Продолжаем рубрику «забытые европейские исполнители». Perelaar — голландская группа, исполнявшая традиционную музыку. Группа черпала вдохновение из рукописей фризского драматурга Андриса Кирса 19 века, а также из старых источников, таких как Amsterdams Liedboek (1655 г.) и фермерского фольклора 18 века. Этот акцент на аутентичном голландском репертуаре в основном связан с Маритой Круийсвейк, которая играла в Perelaar с 1976 года. Сейчас группа продолжает существовать под названием Pekel.
Telgram