Когда разрабатываете свой 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
🚀 NASA: со Starliner от Boeing все было ещё хуже
NASA выпустило 312-страничный отчёт по расследованию первого пилотируемого полёта корабля Boeing CST-100 Starliner, который прошёл в 2024 году.
Напомним, в ходе миссии у корабля произошёл множественный отказ маневровых двигателей. Экипаж всё же добрался до Международной космической станции, но корабль пришлось возвращать на Землю в беспилотном режиме. Астронавты вернулись домой через 9 месяцев на корабле SpaceX Crew Dragon.
По итогам расследования, NASA повысило классификацию инцидента до «происшествия класса A» (Type A mishap) — это самый высокий уровень опасности. В эту же категорию входят аварии Apollo 1, Apollo 13, Space Shuttle Challenger и Columbia.
Класс A — это событие, которое могло привести к гибели или тяжёлому увечью экипажа, потере корабля или ракеты-носителя, либо к ущербу государственному имуществу более чем на $2 миллиона. По словам администратора NASA, Джареда Айзекмана, стоимость проблем Starliner превысила этот порог «в сто раз».
Отчёт критикует и бюрократию NASA, и Boeing. Желание агентства сохранить Boeing как второго (после SpaceX) американского поставщика пилотируемых полётов к МКС, привело к недооценке рисков.
Следующая миссия — Starliner-1, должна была стать первой штатной ротацией экипажа МКС. Однако сейчас она планируется как беспилотная, для доставки грузов и проверки всех внесённых исправлений. Старт запланирован не ранее апреля 2026 года, точная дата пока не названа.
#NASA#Boeing#Starliner
📰 Поддержите @SpaceX_rus🐍:
📺Наш YouTube💸Промо на три буквы -15%
🪐 Boeing’s Starliner spacecraft is designed to ferry astronauts to and from the International Space Station, using advanced guidance and life support systems for safe, repeated flights. Starliner’s ability to land on dry ground instead of water sets it apart from many earlier capsules, marking a new phase in reusable human spaceflight as we reach for destinations beyond low-Earth orbit. ✨
#Starliner⚡#spacecraft⚡#technology⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🚀NASA критикует Boeing за провал миссии Starliner: ошибка или случайность?🌟
Новое руководство NASA жестко осудило компанию Boeing и само агентство за провальную миссию космического корабля Starliner, в результате которой двое астронавтов провели лишние месяцы на борту Международной космической станции (МКС) 🚀.
В 300-страничном отчёте НАСА обвиняются обе стороны в недостаточном контроле качества, плохой координации и неудовлетворительном менеджменте. Согласно отчету, миссия выявила серьезные технические неполадки, недостаток взаимодействия и плохое управление как до запуска, так и непосредственно во время полёта 🔥.
Главный администратор NASA Джаред Айзекман особо подчеркнул, что инцидент с полётом Starliner изначально не воспринимался как серьёзный случай, хотя корабль испытывал целый ряд технических проблем, включая утечку гелия и отказ двигателей. Он классифицировал этот инцидент как аварию «Типа A» — наивысшую категорию аварийности, которая предполагает наличие опасности для членов экипажа 🛠️.
Boeing, со своей стороны, отметила, что принимает меры по устранению недостатков и тесно взаимодействует с NASA для подготовки к последующим полетам Starliner 🚀.
Ключевые моменты:
Проблемы миссии: Утечка гелия, отказ двигателей, невозможность вовремя эвакуировать экипаж. 🌌
Решение: Астронавтам пришлось ожидать эвакуации на борту МКС дольше обычного, в итоге они вернулись домой на корабле SpaceX.
🚀Критика NASA: Недостаточность контроля качества и менеджмента со стороны обоих участников миссии.
📊Позиция Boeing: Признание ошибок и обещание исправлений. 💨
Заключение:
Этот эпизод заставляет задаться вопросом: что важнее — скорость вывода космических аппаратов на орбиту или безопасность космонавтов? Очевидно, что NASA и Boeing предстоит пересмотреть подходы к подготовке и проведению космических миссий, чтобы исключить повторение подобной ситуации в будущем 🚀.
🤑Следите за нашими обновлениями в телеграм и в MAX, чтобы оставаться в курсе последних изменений в экономике и политике!
#космос#NASA#Starliner#Boeing#SpaceX#МеждународнаяКосмическаяСтанция