Когда разрабатываете свой 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
🇷🇺🇮🇳📞 Russia's President Vladimir Putin and Prime Minister of the Republic of India Narendra Modispoke over the phone.
The President of Russia warmheartedly congratulated Narendra Modi on the success of the Indian People's Party in the general parliamentary elections that finished a few days ago. This reflects the support of the political course pursued by the Indian leadership, recognition of the results achieved in the country's socioeconomic development, and its strengthening international authority.
Sides expressed their satisfaction with the current level of especially privileged strategic partnership between Russia and India, which will continue to expand in all areas.
It was agreed to continue constructive personal interaction between the two countries' leaders.
📃 A message of congratulations was also sent to Narendra Modi:
"The results of the voting once again reaffirm your high personal political reputation, as well as the support of the course you pursue towards India’s fast socioeconomic development and protection of its interests on the global stage.
We consider relations of especially privileged strategic partnership with New Delhi of great importance. I am confident that further promotion of mutually beneficial cooperation and giving it new substance aligns with the interests of the Russian and Indian nations.
Of course, I also hope that we will continue our open dialogue and constructive joint work on the topical issues on bilateral and international agenda."
#RussiaIndia
🇷🇺🚀
🇮🇳 On April 3, the Russian House in New Delhi hosted a photo exhibition from the TASS News Agency’s archive to mark the 40th anniversary of spaceflight of the first Indian cosmonaut Rakesh Sharma as part of the Soviet crew.
The event was attended by representatives of the expert community and diplomatic corps, media, employees of the Indian Space Research Organization, students and compatriots.
💬 The exhibition was inaugurated by Roman Babushkin, Minister Counsellor & DCM, Russian Embassy in India, Evgeny Pakhomov, Chief of the Indian Bureau, TASS News Agency, and Sanjeev Kumar Varshney, Adviser & Head, International Cooperation (Bilateral) Division, Department of Science & Technology, Ministry of Science & Technology, Government of India.
The audience was also addressed by Wing Commander Rakesh Sharma himself through a video message. He shared his impressions of preparations for the flight, noted the significance of this event as well as expressed confidence in the further successful development of bilateral cooperation in the space sector.
🎬 A documentary titled “How I Became a Cosmonaut” was also shown as part of the event.
📸 The exposition that contains 40 unique archival photographic materials will last until April 16, 2024.
🔸@RusEmbIndia
#RussiaIndia
🇷🇺
🇮🇳 On June 24, in Tehran, on the sidelines of the 19th Asia Cooperation Dialogue Ministerial Meeting, Russian Deputy Foreign Minister Andrey Rudenko had a meeting with Dammu Ravi, Secretary (ER), Ministry of External Affairs, Government of India.
💬 The parties exchanged views on topical issues of the Russian-Indian cooperation, including in the economic and transport spheres. Particular attention was paid to the interaction within BRICS and the SCO.
🤝 They reaffirmed the commitment to further intensify bilateral political dialogue.
🔸@RusEmbIndia
#RussiaIndia
🇷🇺🇮🇳📞 Russia's President Vladimir Putin and Prime Minister of the Republic of India Narendra Modispoke over the phone.
The President of Russia warmheartedly congratulated Narendra Modi on the success of the Indian People's Party in the general parliamentary elections that finished a few days ago. This reflects the support of the political course pursued by the Indian leadership, recognition of the results achieved in the country's socioeconomic development, and its strengthening international authority.
Sides expressed their satisfaction with the current level of especially privileged strategic partnership between Russia and India, which will continue to expand in all areas.
It was agreed to continue constructive personal interaction between the two countries' leaders.
📃 A message of congratulations was also sent to Narendra Modi:
"The results of the voting once again reaffirm your high personal political reputation, as well as the support of the course you pursue towards India’s fast socioeconomic development and protection of its interests on the global stage.
We consider relations of especially privileged strategic partnership with New Delhi of great importance. I am confident that further promotion of mutually beneficial cooperation and giving it new substance aligns with the interests of the Russian and Indian nations.
Of course, I also hope that we will continue our open dialogue and constructive joint work on the topical issues on bilateral and international agenda."
#RussiaIndia
🇷🇺🇮🇳 Russia’s Foreign Minister Sergey Lavrov and Minister of External Affairs of India Dr. Subrahmanyam Jaishankar hold talks on the margins of the 18th East Asia Summit.
📍Jakarta, September 6
#RussiaIndia
🇷🇺🇮🇳 Foreign Minister Sergey Lavrov and Minister of External Affairs of India Dr. Subrahmanyam Jaishankar hold talks.
📍Cape Town, June 1, 2023
#RussiaIndia
🇷🇺🇮🇳 Foreign Minister Sergey Lavrov holds a meeting with Minister of External Affairs of the Republic of India Dr Subrahmanyam Jaishankar.
📍 New Delhi, March 1
#RussiaIndia
🇷🇺🇮🇳 Russia’s Foreign Minister Sergey Lavrov and Foreign Minister of India Dr. Subrahmanyam Jaishankar hold talks on the sidelines of the Shanghai Cooperation Organisation (#SCO) Heads of State Council meeting.
📍 Astana, July 3
#RussiaIndia
Embassy of Russia in India:
🇷🇺🇮🇳April 13 marks the 79th anniversary of diplomatic relations between Russia and India.
The status of a Special and Privileged Strategic Partnership reflects the scale and depth of Russia-India ties across the political, trade, economic, scientific, technological, educational and cultural spheres.
Flagship areas of bilateral cooperation include joint investment projects, the development of transport corridors, as well as collaboration in space exploration and nuclear energy. Among our foremost priorities are energy security and defence cooperation.
The dynamic growth of bilateral engagement at all levels, including business and interregional contacts, as well as record trade turnover, reflects our shared commitment to the steady further development of equal, trusting and mutually beneficial cooperation. Tourist flows are growing, while humanitarian exchanges continue to expand.
🤝Russia and India are bound by decades of fruitful and effective interstate cooperation, as well as by centuries of genuine friendship and civilisational dialogue.
☝️Our common task is to preserve and build upon this unique legacy.
#RussiaIndia#DruzhbaDosti