Когда разрабатываете свой 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
Jovan Radivojev — Just Like That: Serbian Gajdaš (Canary Records, 2024)
#traditional#serbian#bagpipe#gadja#balkan#Serbia
В начале XX века, из-за того, что население США на 14% состояло из иммигрантов, крупные американские звукозаписывающие компании, такие как Columbia и Victor, начали выпускать пластинки на иностранных языках. К 1913 году Columbia выпустила тысячи таких записей, зафиксировав таким образом языковое и культурное разнообразие США того времени.
Этот альбом включает композиции с двух редких пластинок сербского народного певца Йована Радивоева, выпущенных Columbia Records в 1913 году. На них Радивоев исполняет традиционные сербские песни под аккомпанемент гайда (гајде) — балканской волынки, традиционного инструмента пастухов и участников обрядов.
Многие подобные записи с сербской народной музыкой утрачены из-за исторических потрясений, произошедших в Европе, включая две мировые войны. Однако эти записи сохранились благодаря тому, что были выпущены в США. Они дают редкое представление о жизни и музыкальной культуре сербских иммигрантов в начале XX века.
🔗Bandcamp
Gordan — Gordan (Glitterbeat Records, 2024)
#traditional#ambient#krautrock#barabinske#becarci#ojkace#serbian#Serbia#Germany#Austria
Gordan — совместный проект исследовательницы балканской традиционной музыки Светланы Спаич, австрийского перкуссиониста Энди Штехера и немецкого электронного музыканта Гвидо Мёбиуса. Второй альбом коллектива посвящён устным поэтическим формам, бытовавшим в различных регионах бывшей Югославии.
Поэтическая основа альбома — народное стихосложение, характерное для балканских стилей барабинске, бечарци и ойкачe. В отличие от старинных эпических песен, в которых также используется «десетерац» — десятисложная стихотворная форма с цезурой после четвёртого слога, — эти стили обращаются не к героике, а к повседневным темам. Так, Barabinska посвящена вольному, бродяжническому образу жизни, а Krajiška kontra — конфликтам сербов с представителями австрийской власти времён Военной Краины — пограничной территории Габсбургской монархии, созданной для защиты от Османской империи.
Композиция с длинным названием How A Mountain Fairy Divided The Two Jakšić Brothers представляет собой реконструированную бугарштицу — стиль эпической песни, распространённой среди южных славян в XV–XVIII веках. В отличие от других использованных на альбоме форм, бугарштица больше не встречается в живой традиции. Возможно, это первое появление этого стиля в контексте современной популярной музыки.
Композиция Selo Moje была создана Светланой Спаич во время одной из её поездок в село Жегар в Далмации. В работе над песней приняли участие её наставники из этой деревни — на тот момент им было почти девяносто. Финальная версия представляет собой звуковой коллаж, основанный на воспоминаниях Спаич об этой поездке.
Песня Šara основана на традиционном сюжете о трёх пастухах, погибших в горах Шара под лавиной. В интерпретации Gordan она служит отсылкой к репертуару Боры Спужича Кваке — необычного представитель популярной фолк-сцены социалистической Югославии. Именно его версия этой песни приобрела популярность в 1970-х и её стали исполнять в кафанах по всей стране.
Ещё одна песня, Ne spominji oči plave, отсылает к так называемому «андеграунду» поздней Югославии — массовой культуре, которая продавалась миллионными тиражами, но оставалась вне официального канона. Речь идёт о лейблеJužni vetar, специализировавшемся на популярной фолк-музыке с элементами восточной мелодики и синтезаторного звучания. Несмотря на коммерческий успех, эта продукция официально классифицировалась как «шунд» — «низкопробная» или «вредная» продукция. Такие релизы облагались дополнительным налогом, однако именно они составляли значительную часть реального музыкального ландшафта того времени.
Композиция The Bell is Buzzing основана на традиционной любовной песне, в которой рассказ ведется от лица девушки, влюблённой в пастуха. В одних версиях она остаётся с ним, в других — находит другого. В интерпретации Gordan она делает ему предложение.
Завершающая композиция O Nikola посвящена Николе Тесле. Её текст основан на стихотворении, которое Светлана Спаич записала в конце 90-х со слов Милана Билбийи — жителя села Чиркин-Поле на северо-западе Боснии. В песне перечислены изобретения Теслы, затронуты эпизоды его биографии и передано ощущение меланхолии и одиночества, сопровождавших жизнь учёного.
🔗Spotify | AppleMusic | Bandcamp | Telegram