Когда разрабатываете свой 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
Breaking: A Boeing 737 plane that plummeted into a Chinese hillside in 2022, killing all 132 people on board, had its fuel supply cut mid-flight, according to newly released data by the US National Transportation Safety Board (NTSB).
Findings by the NTSB say that the fuel switches on both engines of the China Eastern flight were moved to the "cut-off" position while it was at a cruising altitude of 8,839m (29,000ft) — exactly like the AI171 Air India crash in Gujarat last year.
China has yet to release a final report on the incident, citing national security concerns. #Aviation
BBC Article
GPS Renewables started construction on India's first Ethanol-to-Jet (ETJ) Sustainable Aviation Fuel (SAF) plant in Pudimadaka, Andhra Pradesh, under an NTPC Green Energy EPC contract. Using Lummus Technology and Xytel India's engineering, the facility at NTPC's Green Hydrogen Hub will produce 1,800 tonnes per annum of SAF and renewable diesel. The process converts CO2-derived ethanol via ethylene conversion, oligomerisation, and hydroprocessing. This project advances India's sustainable aviation fuel scaling and transport sector decarbonization goals.
Source
#Aviation
India is redefining the rules of the game with its upcoming airport privatisation plans, aiming to curb monopolistic tendencies in the aviation sector. The govt is laying down new ground rules to promote a healthy competitive environment.
Source
#Aviation
IndiGo resumes direct India–China flights with Delhi–Guangzhou service; first landing on Apr 28 restores connectivity after ~4–5 year gap. Airline operates daily routes using A320 aircraft, expanding to Shanghai and Kolkata routes with ~21 weekly departures.
#Aviation
https://t.co/3nGRpvMboR
🛠️ AIESL plans to expand the Nagpur aviation maintenance facility into a major MRO hub.
📍 The company is seeking EASA certification to service Airbus aircraft for global airlines.
✈️ The site has already completed 240+ maintenance checks on Boeing and Airbus fleets.
#Aviation
https://t.co/GosIlxNf56
Embassy of France in India
"With effect from 10 April 2026, Indian nationals possessing an ordinary passport are no longer required to hold an airport transit visa when passing through the international zone of airports located on French territory. This measure applies to passengers remaining in the international zone during a layover at a French airport en route to a third country."
#Aviation
✈️ India's newest regional airline Star Air will launch 38 weekly flights to Mundra from 25 April.
🌐 Direct links to Mumbai, Hindon, Goa (Mopa) & Surat plus one-stop routes.
🪑 Adds 4,100+ weekly seats, boosting regional connectivity.
#Aviation
https://t.co/0Ys3hXULvs