Установить свойства виджета в 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
Предлагаю поговорить о тренажёрах
Нет, не о плейне или мфс, а о тех тренажерах, вкоторых проходят тренировки реальные пилоты
📌FFS (Full Flight Simulator) или фсс в народе - полётный тренажёр, максимально точно имитирующий кабину и поведение настоящего самолёта. Это не просто симулятор для игры — это профессиональное оборудование, на котором пилоты проходят обучение, тренировки и проверку навыков будущие и действующие пилоты.
Как устроен FFS?
⏺Реальная кабина — всё в ней один в один, как на реальном борту: приборы, органы управления и даже кресла.
⏺Специальная подвижная платформа, которая имитирует поведение самолёта в воздухе.
⏺Рядом с креслами пилота располагаются кресло инструктора, который сможет в любой момент подсказать или сделать подарок в виде неисправности.
Почему FFS так важен?
✨Безопасность — на FFS можно отработать любые внештатные ситуации: отказ двигателей, пожар, разгерметизация и др. без риска для жизни и здоровья.
✨Удобная проверка — все пилоты проходят регулярную проверку навыков на FFS.
✨Обучение на будущий тип — отработка процедур и выработка правильной последовательности действий при внештатных ситуациях.
Интересный факт
Стоимость такого тренажёра превышает стоимость реального самолёта
⸻
А как считаете вы, есть ли смысл в фсс или их прохождение вовсе не обязательно?
✈️ - Конечно, без предварительных тренировок на фсс полет не будет безопасен
💯 - Думаю, что иногда можно пренебречь подготовкой
🔥 - Толка в FFS нет, это лишь пустая трата времени и сил
👨✈️ - Я работаю на нём, без тренировок никуда
Лёгкое небо | Подписаться
#aviation#FFS#ГА
🥰Full Flight Simulator от Thales
📌Full Flight Simulator (FFS) стал незаменимым инструментом современной лётной подготовки, создавая условия, в которых грань между тренировкой и реальным полётом практически стирается
🔵Возможности
⬅️Тренажёры Thales сертифицированы на высшем уровне и воссоздают полный спектр ощущений полёта - от вибраций при рулении до реакции самолёта на турбулентность. Визуальная система погружает в реалистичную внешнюю среду, а системы управления точно имитируют аэродинамику
🔵Адаптивность
⬅️Модульная архитектура позволяет быстро адаптировать стимуляторы под различные типы воздушных судов, а программное обеспечение регулярно обновляется, синхронизируясь с изменениями в реальной авионике
🔵Функция FFS
⬅️FFS используются для отработки критических сценариев - отказов двигателей, сложных погодных условий, аварийных посадок. То, что невозможно безопасно воспроизвести в реальном полёте, становится рутинной практикой в симуляторе.
Именно такие технологии формируют стандарты подготовки пилотов и напрямую влияют на безопасность полётов
🔵А вы когда нибудь были на настоящем FFS?
Лёгкое небо
#aviation#Thales #FFS
Процедурный тренажер
📌Каждому члену экипажа необходимо досконально знать процедуры и уметь работать с конкретным типом воздушного судна. Для этого используются процедурные тренажеры, которые являются более доступной альтернативой полноценным авиасимуляторам - FFS. Последние крайне дороги, сложны в эксплуатации и обслуживании, а установка нескольких FFS для обучения нескольких экипажей одновременно становится экономически нецелесообразной.
📌Процедурные тренажеры не предназначены для симуляции полета, но на них можно отрабатывать действия, связанные с запуском ВСУ, двигателей и другими базовыми процедурами. Такие тренажеры ориентированы исключительно на отработку процедур, что и отражено в их названии.
Основные особенности процедурного тренажера:
⏺Функциональность тумблеров и ламп: Экипаж может отработать запуск, выключение систем и другие действия.
⏺Фиксированный штурвал: В отличие от ручек управления двигателями (РУД), штурвал в таких тренажерах статичен.
⏺Низкая стоимость: Тренажеры обходятся значительно дешевле FFS, так как не требуют сложных механизмов, экранов или программного обеспечения. Часто их логика реализована на базовом уровне — с минимальным набором проводов и прямой подачей электричества.
⏺Отсутствие симуляции полета: Тренажеры не имеют визуализации внешней среды и предназначены исключительно для изучения порядка действий.
⏺Возможность массового обучения: Благодаря низкой стоимости можно построить несколько тренажеров и обучать одновременно несколько экипажей.
Такие тренажеры играют важную роль в подготовке экипажей. Несмотря на то, что многим интереснее отрабатывать полеты, без освоения процедур невозможно стать полноценным пилотом. Сегодня такие тренажеры активно используются как для переподготовки, так и для регулярных проверок летного состава. ✈️
А удавалось ли вам, дорогие подписчики, побывать на процедурном тренажёре?
Лёгкое небо
#FFS#Ил76#Процедурныйтренажер
🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣
📌Дорогие подписчики, мы продолжаем модернизацию канала, поэтому сегодня собрали для вас глоссарий с основными хэштегами канала
Основные:
#aviation
#news
#LN_EDU
#airport
Страны:
#Россия
#Белоруссия
Остальные:
#vibe
#metar
#S7TRAINING
ВС:
#A320
#B777
#A350
#B777X
#B737
#A380
#А330
#МС21
#Ту214
#Су57
#ssj100
#B737
#B787
#drone
#аэростаты
Системы:
#Leonardo
#FFS
Компании:
#Airbus
#Boeing
#Embraer
#Cessna
#ВертолётыРоссии
#ОАК
#Росавиация
#Ростех
#winwing#winctrl
#flightradar24#fr24
#Авиатор
Авиакомпании:
#Аэрофлот
#S7#S7Airlines
#ЮТэйр
#Белавиа
#Azur
#Ямал
Аэропорты:
#Шереметьево#Sheremetyevo
#Домодедово
#Внуково
#Жуковский
#Пулково
События:
#Emergency
#деньрождения
#ковёр
#sqw7700
#MayDay
#quiz
#spotting#споттинг
#конкурс
#DubaiAirShow2025#DAS25
Профессии:
#бортпроводники
#crew
#FlightAttendant
🔵Мы непрерывно работаем над тем, чтобы каждый день радовать вас качественным контентом и удобной навигацией по каналу
⬅️Если у вас есть идеи по новым рубрикам на канале - пишите их в комментарии. Кто знает, возможно именно ваша идея будет воплощена в жизнь 👀
Лёгкое небо