Когда разрабатываете свой 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
🇵🇪#Peru: Former Senate candidate Jorge Luis Alcalde Alfaro was assassinated by a hitman in broad daylight in Trujillo three days ago.
He was about to enter his car when another vehicle pulled up and opened fire. He later died on the way to the hospital.
(📹 via @cartelwatchnet on X & Caretas.pe)
🗺 Peru 🇵🇪
🟠It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
This is called sandboarding.
📏
📏
📏
📏
📏
📏
📏
📏
#Peru | @voyage
🗺 Peru 🇵🇪
🟠It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
This is called sandboarding
📏
📏
📏
📏
📏
📏
📏
📏
#Peru🇵🇪@voyage
🗺 Peru 🇵🇪
📏
📏
📏
📏
📏
📏
📏
📏
🟠It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
📏
📏
📏
📏
📏
📏
📏
📏
This is called sandboarding.
📏
📏
📏
📏
📏
📏
📏
📏
#Peru🇵🇪@voyage
🗺 Peru 🇵🇪
It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
This is called sandboarding.
#Peru
@voyage
Peru🇵🇪
Impressive natural masterpiece - the Rainbow Mountains in the Cusco region. ⛰🌈
The colorful layers of these mountains were formed millions of years ago from red sandstone, which, under the influence of climatic conditions, underground water, and mineral impurities, became stained with yellow, green, white, and other colors.
#Peru
@voyage
Peru🇵🇪
A walk with a magnificent view of Machu Picchu.
Machu Picchu is a legendary city nestled in the heart of the Andes at an altitude of 2400 meters. It is an ancient Inca settlement located between two mountain peaks. 🏔
When tourists gaze at the ruins of the city of Machu Picchu, which stand out dramatically among the jungle-covered mountain peaks and steep slopes, and the terraces descending into the valley, their breath is taken away.
#Peru
@voyage
The right to die
#video#Peru
Ana Estrada is confined to bed most of the time and can breathe only with a respirator. She lives with polymyositis, a rare muscle disease with no cure. Since 2016, Ana has been writing a blog called ‘Ana seeks a dignified death’. In addition, she started a legal battle to decide to end her life ‘when the time comes’. Assisted death is illegal in her country of Peru.
Peru is primarily a Catholic country, where euthanasia is prohibited alongside same-sex marriage and abortion. However, in 2021 a court ruled in favour of Ana and cleared anyone assisting in her death of criminal charges. Ana says she would decide to die when she could no longer write her blog.
On this day in 2000, the Dutch lower house of parliament voted to legalise euthanasia. Thus, the Netherlands became the first country that allowed mercy killings. Euthanasia is also legal in Spain, Belgium, Luxembourg, Canada and Colombia.
Follow: https://t.me/rtdocumentary
#video#Peru
Hundreds of thousands of Peruvian women were forcibly sterilised between 1996-2000 as part of President Alberto Fujimori’s family planning programme. The initiative was launched to reduce poverty and cut birth rates among the poor. While it was supposed to be consensual, women involved in the programme say otherwise. Most of the victims came from poor indigenous communities.
Josefa was at home when nurses came and forced her to go to the hospital. She still recalls waking up after the procedure and seeing other women crying out their husbands’ names in pain. In the following years, Josefa suffered from infections and cancer. Decades later, Josefa and others are still seeking justice through a class action suit against the ex-president.
Follow: https://t.me/rtdocumentary
#GASTRONOMIA#PERU🍲 | Cultura, sabor y frescura: La magia de la gastronomía peruana en Déjame Que Te Cuente https://ift.tt/hEqG9Wf March 22, 2025 at 06:00AM
#GASTRONOMIA#VENEZUELA#PERU👩🏻🍳🧑🏻🍳👨🏻🍳 | Chef venezolano triunfa con restaurante peruano en su país: "Necesitaba de la gastronomía de Perú" https://ift.tt/YdZC8u1 August 02, 2025 at 09:15AM