Когда разрабатываете свой 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
🇬🇧#UK - Il parlamento ha approvato in via definitiva una legge per eliminare i 92 “membri ereditari” della Camera dei Lord, la camera alta del parlamento. È una decisione storica che metterà fine a una consuetudine che durava da più di 700 anni. (ilPost)
@UltimoraPolitics24
🇬🇧#UK Trump has been at the center of discussion due to a breach of protocol.
British social media is discussing an incident in which US President Donald Trump walked past Queen Camilla to shake hands with his acquaintances, which was considered a breach of protocol.
🇬🇧#UK. Armed police spotted outside a McDonald's in Kensington.
Armed Police arresting a suspect outside McDonald's. Armed response was deployed due to intelligence suggesting high risk,possible weapon or violence, it's standard UK protocol for public safety. Police haven't released specifics on the exact reason or threat yet, as it's an active investigation.
(By the looks of one of those green dots, someone has had far too much coffee.)
Follow us -> LiveLeak
#UK: Il Regno Unito ha affermato che non parteciperà alle operazioni militari contro l'Iran, anche se il governo si è espresso in supporto agli obiettivi dichiarati dagli USA e Israele.
🇬🇧The Psychological Attack on the UK, Part 2 | UKColumn - 2021
If Bezmenov had been correct in just one or two of his predictions, then we might assume that coincidence was at work. In reality, he was correct in all of his predictions. Common sense therefore tells us that the plan he describes must be both real and effective. And that plan ultimately leads from 'Demoralisation' to 'Destabilisation', to 'Crisis' (Chaos) and then 'Normalisation' — so-called 'peace' (actually pacification) under a socialist/communist dictatorship of global scale.
In Part 2 as we tackle the key subversively targeted area of Security (covering the intelligence community, police and military), but first we address the demoralising and destructive plans detailed for Law and Order and Social Relations.
To recap, the following descriptive paragraph sets out the key warning within Story's highly detailed and meticulously researched book:
The European Union Collective Enemy of its members states
@ukcolumn@EastApp
#UK
🇬🇧The Psychological Attack on the UK: Start of a Series | UKColumn – 2021
Alex Thomson and Brian Gerrish discuss the origins of the psychological attack on the UK in the first part of a series. Our starting documentation and analysis centres on the book by Christopher Story: The EU Collective - Enemy of its Members States.
@ukcolumn@EastApp
#UK
🇬🇧#UK: Footage shows tens of thousands of protesters marching through London as two rival demonstrations, the “Unite the Kingdom” rally and a large pro-Palestine march, take place simultaneously across the capital.
According to police, at least 11 people have been arrested since the demonstrations began.
🇬🇧#UK: London is preparing for one of its largest public order operations in recent years as two major demonstrations, the pro-Palestine “Nakba Day” march and the “Unite the Kingdom” rally organised by Tommy Robinson, take place simultaneously this weekend in central London, alongside the FA Cup Final.
For the first time in a protest policing operation in the UK, live AI facial recognition will be used alongside aerial surveillance employing helicopters and drones, as well as armoured vehicles and large-scale specialist policing units deployed across the capital. Around 4.000 officers will be involved in the operation, with reinforcements from forces across England and Wales, as authorities reportedly prepare for "significant public order risks" across multiple protest routes.
(via Reuters & BBC)