Когда разрабатываете свой 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
News: #Ethiopia, #European Investment Bank sign €110 million loan to support rural finance, development
The Government of Ethiopia and the European Investment Bank (#EIB) have signed a €110 million loan agreement to support the implementation of the Rural Finance and Development Project, aimed at expanding access to finance for micro-enterprises and small businesses across the country.
The agreement was signed on Monday by Minister of Finance Ahmed Shide and Diederick Zambon, Head of Division for Public Sector at the EIB.
According to the Ministry of Finance, the project seeks to promote sustainable agricultural and economic practices by improving access to financial services, particularly in rural areas. The Development Bank of Ethiopia will channel the funds to rural financial institutions, including microfinance institutions and cooperatives.
The project is co-financed by the...
https://www.facebook.com/AddisstandardEng/posts/pfbid02RQCZ4fGrkSWhJ5YqhBxhbrFwUTy28vSuwRaiWyAysDNh2DqpfTJgdTin6pWZj9k2l
News: #Ethiopia to receive €40 million financing for agricultural exporters under #EIB-#Zemen_Bank agreement
Ethiopian agricultural businesses, particularly exporters of coffee and horticultural products, are set to benefit from up to €40 million in financing under a new agreement between European Investment Bank Global and Zemen Bank SC, according to information shared with Addis Standard by EIB.
https://addisstandard.com/ethiopia-to-receive-e40-million-financing-for-agricultural-exporters-under-eib-zemen-bank-agreement/
Zemen Bank Matches LOC €20 million European Union Investment Bank For Agribusiness. Read more.
https://borkena.com/2026/04/21/zemen-bank-matches-loc-e20-million-european-union-investment-bank-for-agribusiness/#Ethiopia#bank#ZemenBank#loan#EIB#Investment#Agriculture@s_zemen @EIB
👆👆👆👆👆ко дню понедельника:
Европа вкладывает миллиарды в зеленое будущее Центральной Азии
Иногда перемены приходят не внезапно, а как долгожданный рассвет. Сегодня таким рассветом для всего региона стала новость из Брюсселя:
Европейский союз, Европейский инвестиционный банк и Европейский банк реконструкции и развития объявили о крупнейших за историю вложениях в «зеленую» энергетику Центральной Азии, таких как строительство ГЭС Камбаратинская-1 в Кыргызстане.
Объем инвестиций - почти два миллиарда евро.
На площадке Global Gateway Forum уже подписаны соглашения на 900 миллионов евро от ЕС и ЕИБ, а ЕБРР готовит еще 1,3 миллиарда.
Общая стоимость проекта - от 5 до 6 миллиардов долларов. Это по праву можно считать энергетическим событием десятилетия.
Проект, меняющий ландшафт региона
Гидроэлектростанция Камбаратинская-1 будет возведена на реке Нарын, в южной части Кыргызстана. Ее мощность - 1 860 мегаватт, а за плотиной высотой 256 метров образуется гигантское водохранилище на 5,4 миллиарда кубометров воды.
Это - энергия для более миллиона домов и новая система управления водными ресурсами для сельского хозяйства Кыргызстана, Казахстана и Узбекистана.
🤝 Редкий пример доверия
Камбаратинская-1 станет совместным проектом трех стран - Кыргызстана, Узбекистана и Казахстана, каждая из которых получит долю примерно в треть.
Такого уровня кооперации между центральноазиатскими государствами не было десятилетиями.
Что это значит для региона
Проект Камбаратинской-1 даст Центральной Азии чистую и доступную энергию, укрепит продовольственную безопасность, снизит углеродные выбросы и привлечет новые международные инвестиции в устойчивое развитие.
#Kambarata1#Кыргызстан#Казахстан#Узбекистан#ЦентральнаяАзия#Европа#Гидроэнергетика#GlobalGateway#EBRD#EIB#EU#ЗеленаяЭнергия