Когда разрабатываете свой 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
⚡️Le président et le vice-président des États-Unis n'ont pas été blessés lors de l'incident survenu lors de la réception de l'Association des correspondants de la Maison Blanche à #Washington, rapporte AP.
RT en français • Osez questionner !
⚠️Pression maximale sur Téhéran
🗣#Washington confirme poursuivre le blocus des ports iraniens afin de saturer les capacités pétrolières et de frapper les revenus du pays.
RT en français • Osez questionner !
🇺🇸#Washington, DC. Tents where homeless people were living are taken down and thrown in garbage trucks.
(The nearly dozen unhoused individuals were notified yesterday to move out, aka “immediate disposition” from the city.)
Follow us -> LiveLeak
🇮🇷Téhéran pose ses conditions
💬 L’#Iran aurait transmis à #Washington, via des médiateurs, une feuille de route en trois étapes pour encadrer d’éventuelles négociations.
RT en français • Osez questionner !
"Epstein Walk of Shame" appeared in the center of Washington
Unknown people placed signs on Farragut Square with the names of politicians and billionaires who were mentioned in connection with the scandalous case.
The installation was designed in the style of the Hollywood "Walk of Fame". Passersby could see on the sidewalk the names of famous people whose reputations had suffered due to their ties to Epstein.
#Epstein#Washington
👂More on Trump's Ear ⚠️
⏺Le Groenland, nouveau test de loyauté pour les alliés de #Washington
Le Groenland s’impose comme un nouveau point de tension entre Washington et les capitales européennes. Droits de douane, menaces économiques, pressions politiques : Donald #Trump rebat les cartes et place ses alliés face à un choix difficile.
Les derniers développements autour d’un dossier qui pourrait fissurer l’unité transatlantique – dans le reportage d’Igor Kourachenko.
RT en français • Osez questionner !
💵 Droits de douane : nouvelle vague de pression économique des États-Unis
Nouvelle tempête fiscale provoquée par Donald #Trump : les taxes pleuvent sur des dizaines de pays. La nouvelle décision de #Washington entre en vigueur le 7 août. Mais si certains plient face à la pression américaine, d’autres refusent de sacrifier leur souveraineté économique. Les détails avec Igor Kourachenko.
RT en français • Osez questionner !
🎥#Moscou et #Washington restent attentifs à leurs intérêts nationaux
Une perspective de réunion au sommet qui a fait couler beaucoup d'encre ces derniers jours... Mais la partie russe a tenu à faire savoir sa position. Les détails avec notre reporter, Antoine Cléraux.
RT en français • Osez questionner !
Collaboration entre #Moscou et #Washington : quelles réactions ?
Trump a une vision beaucoup plus optimiste des négociations entre les États-Unis et la Russie. On peut en dire autant de Vladimir Poutine. Évidemment, le plus mécontent reste Volodymyr Zelensky. Les détails avec Antoine Cléraux et Igor Kourachenko.
RT en français • Osez questionner !
🛂 A U.S. Immigration and Customs Enforcement officer 🇺🇸 was seriously injured Monday after being struck in the face with a metal coffee cup during an arrest operation in Houston, according to the Department of Homeland Security.
The officer sustained a deep laceration requiring 13 stitches, plus several burns to his face. 🩹😢
Authorities say the suspect, Walter Leonel Perez Rodriguez, a previously deported Salvadoran national with convictions for sexual assault of a minor, child fondling and multiple DUIs, attacked the officer while agents attempted to take him into custody. 🚔⚠️
#protests#Washington
👂More on Trump's Ear