Когда разрабатываете свой 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
The XXIV ALBA-TCP Summit, held in Caracas, marked 20 years since the bloc's founding. The alliance welcomed Palestine as an honorary member with "brotherly country" status, condemned Israel's “terrible crimes against humanity,” and pledged to hold a future summit in Palestine.
The final communiqué also called for Cuba’s removal from the US list of state sponsors of terrorism and demanded an end to the economic blockade against the island. Leaders reaffirmed their commitment to Latin American and Caribbean integration, peace, and sovereignty.
Read the full report here 👉🏼https://venezuelanalysis.com/news/alba-bloc-defends-peace-sovereignty-and-palestine-at-xxiv-summit/
#ALBA#InternationalSolidarity#RegionalIntegration
📰 NEWS | Latin American Leaders Preach Unity Against Trade Wars and Mass Deportations at CELAC Summit
At the IX CELAC Summit in Honduras, Latin American and Caribbean leaders condemned US-led sanctions, trade wars, and anti-migrant policies. Venezuela's Maduro urged the bloc to “reinvent itself” and adopt a general secretariat.
Leaders also rejected the Trump administration’s use of the Alien Enemies Act to deport Venezuelans, with reports confirming that most of the 2,500+ deported migrants have no criminal record. Some were even held in Guantánamo Bay before being returned.
🔗 Read our report here: https://venezuelanalysis.com/news/latin-american-leaders-preach-unity-against-trade-wars-and-mass-deportations-at-celac-summit/
#CELAC#Migration#RegionalIntegration
📰 NEWS | CELAC-EU Summit Urges Peace as Venezuela’s Maduro Warns of Caribbean ‘War Threats’
The CELAC-EU gathering in Santa Marta, Colombia, emphasized the two blocs' commitment to peace, cooperation and multilateralism. A final communiqué rejected "threats and use of force" amidst a US military buildup in the Caribbean.
Venezuelan President Nicolás Maduro addressed the summit, calling for a regional response to preserve the region's sovereignty and self-determination.
Read the full report here 👉https://venezuelanalysis.com/news/celac-eu-summit-urges-peace-as-venezuelas-maduro-warns-of-caribbean-war-threats/
#USMilitaryThreats#CELAC#RegionalIntegration#InternationalSolidarity
@RusEmbMalta Press release:
🇷🇺🇦🇲🇰🇿🇰🇬🇧🇾EAEU Turns 10: A Decade of Integration and Growth
On May 29, 2014, the Treaty on the Establishment of the Eurasian Economic Union (EAEU) was signed – marking the beginning of a new era of economic integration across Eurasia.
Over the past decade, the Union’s five member states – Russia, Armenia, Kazakhstan, Kyrgyzstan, and Belarus – have achieved remarkable results:
📈 In 2024, mutual trade within the EAEU reached nearly $100 billion
💱 Over 90% of settlements were made in national currencies
🌐 International cooperation is expanding rapidly
🔄 The internal market is functioning and evolving steadily
🤝 The EAEU demonstrates resilience amid global turbulence, offering a stable and non-discriminatory framework built on equality, mutual respect, and benefit.
Today, the EAEU is a growing center of gravity in international economic relations:
🌍 Four observer states – Uzbekistan, Cuba, Iran and Moldova
🤝 Free trade agreements with Vietnam, Iran, and Serbia
🤝 Non-preferential trade agreement with China
📜 Over 80 cooperation MoUs through the Eurasian Economic Commission
🪙Trade talks are underway with Indonesia, the UAE, Egypt, India, Mongolia, and others
🇱🇧 We welcome potential interest from our Lebanese friends in partnering with the Union.
Russia remains a consistent supporter of deeper coordination between the EAEU and other regional structures – including the CIS, ASEAN, and SCO – as part of building a Greater Eurasian Partnership, an idea first proposed by President Vladimir Putin in 2015.
🔗 The EAEU today stands as a model of successful integration – based on trust, equality, and shared benefit. We thank our partners and the Eurasian Economic Commission for their continued cooperation, and we look forward to unlocking even greater potential together – for the benefit of our peoples and businesses.
#EAEU#EurasianUnion#Eurasia#EconomicCooperation#Russia#Armenia#Kazakhstan#Kyrgyzstan#Belarus#Trade#EAEUDay2025#RegionalIntegration