Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
Три преимущества A220 перед Boeing 🇫🇷
Airbus выделяет ключевые преимущества A220:
⏺Принципиально новая конструкция
В отличие от Boeing 737MAX, созданного на базе существующей модели, A220 позволяет интегрировать все современные инновации в аэродинамике, материалах и авионике.
Самолет оснащен двигателями PW1500G, композитными крыльями и алюминиево-литиевым фюзеляжем, что делает его тихим и экологичным.
⏺Повышенный комфорт и эффективность
Вместимость 100-160 пассажиров с более широкими креслами и панорамными окнами.
Эксплуатационные расходы на место уменьшились на 25% по сравнению с самолетами предыдущего поколения, что обеспечивает авиакомпаниям лучшую прибыльность.
⏺Универсальность маршрутной сети
Благодаря сочетанию экономичности и дальности полета A220 может выполнять как региональные, так и межконтинентальные рейсы, открывая ранее невыгодные маршруты.
📌Будущее A220: планы и вызовы
Планируется создание A220-500 - удлиненной версии, запланированной на начало 2030-х годов как прямой конкурент Boeing 737-800 и 737 MAX8. Многие авиакомпании уже проявляют интерес к версии большей вместимости.
Однако успех зависит от решенияпроизводственных проблемс компонентами самолета - пилонами, системами, креплениями крыло-стойка, обтекателями и секциями фюзеляжа.
Airbus уже завоевал 55% рынка малых авиалайнеров: заказано 941 самолет A220, поставлено 435.
Лёгкое небо
#aviation#A220#B737max
Synaptic Simulations и iniBuilds поделились свежими деталями разработки Airbus A220 для Microsoft Flight Simulator 2020/2024. Команда сообщила о завершении важных этапов и рассказала о следующих шагах.
📌 Внешняя модель самолёта полностью готова: финализированы фюзеляж и все наружные элементы. Использование фотореалистичных текстур, оптимизированных уровней детализации (LOD) и точной геометрии позволило добиться высокого визуального качества без ущерба для производительности. Теперь проект полностью основан на собственных наработках, отказавшись от внешних компонентов.
✈️ В кабине завершаются финальные доработки — улучшается визуальная составляющая, продолжается развитие интерфейса электронного бортового планшета (EFB) и углубляется моделирование авионики. Особое внимание уделяется реалистичной работе дисплеев, сенсорных элементов и запуску систем. Также активно разрабатываются системы отказов, моделируется инерциальная навигация и реализуются взаимодействия по протоколам ARINC.
🔔 Выпуск A220-300 запланирован на этот год через платформу iniManager, что обеспечит удобную установку и обновления. Впоследствии бесплатно выйдут версии A220-100 и ACJ. Версия для Xbox находится в планах, но приоритет остаётся за ПК-релизом.
Изначально проект задумывался как бесплатный и с открытым кодом, но в 2024 году перешёл на коммерческую модель. Это решение связано с повышенными стандартами качества и необходимостью ускорения разработки. Партнёрство с iniBuilds призвано обеспечить более высокую степень проработки и стабильную реализацию проекта.
Лёгкое небо
#aviation#A220#mfs#mfs2024
✈️ A220 для MSFS выходит на финишную прямую
📌Разработчики iniBuilds и Synaptic поделились прогрессом по A220 для Microsoft Flight Simulator – проект приближается к релизу. За последние месяцы команда кардинально переработала ключевые подсистемы самолёта
🔵Полностью переписаны система fly-by-wire и модель двигателя, реализованы автопилот с функцией автопосадки, вертикальная и боковая навигации. FMS создан с нуля для лучшей интеграции и производительности. Система предупреждений экипажа (CAS) обрабатывает 3350 входных сигналов с точностью срабатывания до 100 мс – как на реальном самолёте
🔵Финальное тестирование начнётся в конце марта, релиз ожидается после его завершения
⬅️Ждёте A220?
Лёгкое небо
#aviation#news#MSFS#A220#iniBuilds
✈️ Швейцарские «Арбузы» на приземлении: Swiss Air заглушает все Airbus A220-100 на 1,5 года
Швейцарский перевозчик Swiss International Air Lines (SWISS) принял радикальное решение: все девять самолетов Airbus A220-100 будут выведены из эксплуатации на срок до полутора лет. 🛬
Причина банальна и стара, как мир: хронические проблемы с двигателями Pratt & Whitney PW1500G.
💡 Что это значит на практике?
Авиакомпания нашла нестандартный выход:двигатели с «законсервированных» A220-100 будут демонтированы и установлены на более вместительные модели A220-300. Таким образом, SWISS надеется сохранить регулярность рейсов и выполнение расписания, активно используя флот A220-300.
⚠️ Но проблема гораздо глубже, чем кажется!
Эта история— лишь верхушка айсберга. Ненадежность двигателей PW1500G уже несколько лет тормозит всю программу Airbus A220:
▪️Массовые простои самолетов у разных авиакомпаний.
▪️Гигантские очереди на ремонт и техобслуживание двигателей.
▪️Airbus официально отказался от амбициозных планов по наращиванию производства A220 до 14 лайнеров в месяц к 2026 году.
📉 Продажи падают: кто виноват?
Рынок голосует кошельком,и вердикт неутешителен:
➖За 9 месяцев 2024 года — лишь один твердый заказ на 40 самолетов от авиакомпании LOT.
➖В 2023 году и вовсе был зафиксирован отрицательный результат: минус 9 самолетов (списания и отмены заказов перевесили новые).
🇷🇺 А что в России?
Пока западные авиагиганты сталкиваются с зависимостью от капризных поставщиков,Россия делает ставку на собственное производство и технологический суверенитет. Разработка новых самолетов (таких как МС-21, Сухой Суперджет) и двигателей к ним (ПД-8, ПД-14) — это не просто импортозамещение. Это стратегический шаг, который в будущем должен на 100% обезопасить страну от подобных коллапсов в авиаперевозках.
Вывод: История с A220 — это яркий пример того, как уязвима глобальная авиаиндустрия, когда один ключевой компонент подводит. И тем весомее выглядит необходимость развития собственной авиапромышленности.
SwissAir #Авиация#Airbus#A220#PrattAndWhitney#Авиадвигатели#НовостиАвиации#Авиапром#Россия#Импортозамещение#Авиаперевозки#Транспорт#Бизнес
🛑🦝 ЕНОТЫ ОСТАНОВИЛИ СБОРКУ AIRBUS В КАНАДЕ
🐾 На заводе Airbus в Мирабеле (Канада) 🏭 неожиданно остановили производство после того, как семья енотов 🦝 проникла на линию сборки самолётов A220 ✈️.
🔧 Один из зверьков залез на шасси новенького лайнера, предназначенного для Европы, а детёныши тем временем успели повредить проводку и даже «оставили след» внутри салона 😬. Производство остановили, животных выгнали, а самолёт отправили на внеплановую проверку.
🚫 Airbus усилил охрану и пересмотрел протоколы безопасности на ключевом заводе в Северной Америке.
📦 Забавный инцидент с серьёзными последствиями: каждый час простоя — миллионы убытков 💸.
#Airbus#A220#Канада#Мирабель#авиация#курьез#еноты#завод#инцидент#авиапром#самолёты#новостиавиации#aircraftnews