Когда разрабатываете свой 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
🎬 Life Is Beautiful
Gênero: #Drama, #Italian
⭐️ IMDb: 8.6
⏳ Duração: 1h 56m
📝 Sinopse:
Quando um garçom judeu de mente aberta e seu filho se tornam vítimas do Holocausto, ele usa uma mistura perfeita de vontade, humor e imaginação para proteger seu filho dos perigos ao redor de seu acampamento.
Fonte: IMDb
🔵Inscreva-se em @Assistir
*Patrocinado: Anime Bot
#Ethiopia’s #Bishoftu mega airport secures fresh financing momentum
Ethiopia’s landmark aviation project near Bishoftu is gaining fresh international traction following a recent series of high level engagements in #Rome, where #Italian officials signalled a readiness to support key components of the financing for what is being positioned as #Africa’s most ambitious airport scheme.
This development comes as the project — already under construction — moves from planning into execution mode, and as Addis Abeba’s existing aviation capacity nears its limits.
Announced during formal discussions in mid March 2026 between Ethiopia’s Finance Minister Ahmed Shide and Italy’s Minister of Economy and Finance Giancarlo Giorgetti, Italy’s pledge does not yet amount to a fully executed funding commitment.
Rather, it frames Italian support as being part of a multi layered financing structure under negotiation, with.........
https://aircargoweek.com/ethiopias-bishoftu-mega-airport-secures-fresh-financing-momentum/
Memorial park honoring prominent #Somali anti-colonial leader Sayyid Mohammed Abdullah Hassan inaugurated in #Jigjiga
A new memorial park honoring Sayyid Mohammed Abdullah Hassan, the early 20th century Somali scholar, poet and anti-colonial military leader, has been officially inaugurated in Jigjiga, capital of #Ethiopia’s Somali Regional State.
Known in Somali as Maxamed Cabdulle Xasan, Sayyid Mohammed Abdullah Hassan is know to have founded and led the Dervish movement, which waged armed resistance against #British, #Italian and Ethiopian colonial expansion in the Somali Peninsula.
While widely revered by many Somalis as a symbol of anti-colonial struggle, he was pejoratively labeled the “Mad Mullah” by the British Empire. In 1917, the Ottoman Empire recognized him as the “Emir of the Somali People.”
Regional President Mustafa Muhummed presided over the ribbon-.....
https://web.facebook.com/AddisstandardEng/posts/pfbid035zhG5D71mJR7UdFHybuQqaDPAcU8msaQNqQShDRQ5NYGVkbYXYFHbQGW62n97vmrl
Various Artists — The Archival Recordings of Constantin Brăiloiu (Death Is Not The End, 2024)
#traditional#field_recording#basque#bretton#bulgarian#corsican#ethiopian#flemish#gaelic#georgian#greek#hausa#inuit#irish#italian#kabyle#macedonian#norwegian#romanian#russian#sardinian#sephardic#swiss#tuareg#Brittany#Flanders#Wallonia#Bosnia_and_Herzegovina#Bulgaria#China#England#Ethiopia#France#Georgia#Greece#India#Ireland#Italy#Japan#Macedonia#Norway#Portugal#Romania#Russia#Switzerland#Turkey
Сборник записей пионера румынской этномузыкологии, Константина Браилою. Треки с него впервые прозвучали на радио NTS в июле 2017 года, а в 2024 году лейблDeath Is Not The End выпустил его в формате полноценного альбома в честь своего 10-летия.
Сборник включает полевые записи народных песен и танцев и охватывает музыкальные традиции множества культур: английской, ирландской, гэльской, норвежской, бретонской, японской, итальянской, швейцарской, баскской, сардинской, эстонской, грузинской, греческой, турецкой, сефардской, португальской, французской, китайской, русской, хауса, туарегов, индийской, корсиканской, эфиопской, румынской, валлонской, фламандской, немецкой, кабильской, болгарской, македонской, боснийской и карибу-эскимосской.
Существенная проблема этого релиза заключается в том, что треки не проаннотированы. По этой причине слушателю придется упавать на свою собственную эрудицию и знание языков, чтобы понять, какая композиция принадлежит к какой культуре.
🔗Bandcamp | Telegram