Установить свойства виджета в 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
Годы идут, приоритеты не меняются 🇦🇺
Qantas, флагманская авиакомпания Австралии, продолжает полагаться на Boeing 737-800 в качестве единственного узкофюзеляжного самолета в своем основном флоте.
⏺Компания является крупнейшей авиакомпанией в регионе Океании по размеру флота и количеству международных направлений, а также единственной авиакомпанией в мире, которая летает на все семь континентов благодаря антарктическим обзорным чартерам.
⏺Qantas выбрала единый тип узкофюзеляжного самолета для упрощения обучения пилотов, технического обслуживания, логистики операций и снижения общих эксплуатационных расходов
⏺Qantas недавно объявила о планах замены своего флота 737-800 на более новые Airbus A321XLR. Компания уже получила свой первый 321, хотя пока не ввела его в эксплуатацию, и списала три 737.
📌Boeing 737-800, представленный в 2002 году как часть семейства Next Generation (NG), стал самым популярным узкофюзеляжным самолетом в мире с более чем 5,200 заказанными единицами.
______
738 или всё же 321?
Лёгкое небо
#aviation#B737
Переходный этап в гражданской авиации 💙
⏺Поколение Classic в семействе самолётов Boeing 737 — это значимый и логически выверенный переходный этап между ранними моделями и более современными версиями NG и MAX.
⏺К данному поколению относятся модификации Boeing 737-300, 737-400 и 737-500. Их серийное производство началось в начале 1980-х годов и продолжалось почти два десятилетия.
⏺Classic стал своевременным ответом компании Boeing на всё возрастающие требования авиарынка к более вместительным, экономичным и одновременно более тихим узкофюзеляжным самолётам.
⏺Одним из ключевых технических новшеств стало внедрение новых турбовентиляторных двигателей CFM56, разработанных совместным предприятием General Electric и SNECMA.
⏺Эти двигатели оказались заметно тише и экономичнее по сравнению с предыдущими JT8D, использовавшимися на ранних версиях 737. Однако они были больше по диаметру.
⏺В результате конструкторам пришлось адаптировать дизайн мотогондол, придав им характерную сплюснутую форму снизу. Именно так появилась знаменитая “улыбка” Boeing под крылом — легко узнаваемая деталь, ставшая фирменной чертой Classic.
⏺Самолёты поколения 737 Classic получили полностью обновлённую кабину экипажа, более современную для своего времени авионику, а также улучшенные аэродинамические характеристики.
⏺Были увеличены объёмы топливных баков и, соответственно, дальность полёта. Это сделало самолёты более универсальными — подходящими как для коротких, так и для среднепротяжённых маршрутов.
⏺Лайнеры этой серии активно эксплуатировались крупнейшими авиаперевозчиками по всему миру, в том числе в странах СНГ и особенно в России, где они стали популярными благодаря своей надёжности.
⏺Даже сегодня, несмотря на почтенный возраст, отдельные экземпляры Boeing 737-300 и 737-500 продолжают выполнять полёты, чаще всего в грузовых вариантах или в составе чартерных авиакомпаний.
⏺Поколение Classic сыграло важную и достойную роль в истории развития гражданской авиации. Эти самолёты стали надёжным рабочим инструментом, связавшим старую и новую эпохи узкофюзеляжных авиалайнеров Boeing.
Лёгкое небо | Донат
#aviation#B737#Boeing
✈️ Факт дня | Шасси
📌Шины шасси самолёта накачаны не обычным воздухом, а азотом
🔵Причина заключается в том, что азот, которым заполняют колёса, инертен и не поддерживает горение. При посадке шины нагреваются до 200-250°C от трения, и обычный воздух с кислородом мог бы спровоцировать возгорание изнутри
🔵Шины Boeing 737 рассчитаны примерно на 300 посадок. После этого покрышку отправляют на восстановление протектора – нарезают новый рисунок. Одну шину можно восстановить до 5-7 раз, прежде чем она окончательно списывается
Лёгкое небо
#aviation#LN_fact#B737
А теперь о боинге 🥰
Альтернатива шарклетов у боинга - винглеты, поэтому речь пойдёт о них.
Винглеты — это вертикальные или изогнутые окончания крыла самолёта, которые уменьшают индуктивное сопротивление и увеличивают топливную эффективность. Их основная задача — бороться с вихрями, которые образуются на концах крыла и создают лишнюю турбулентность и сопротивление.
Один из самых узнаваемых видов винглетов — скмитары (scimitar winglets). Это модернизированные винглеты с характерным двойным изгибом. Они используются на Boeing 737 MAX и некоторых модификациях 737NG.
Что дают скимитары?
⏺Снижение расхода топлива до 2% по сравнению с обычными винглетами.
⏺Улучшение аэродинамики и дальности полёта.
⏺Красивый внешний вид, который легко узнать.
Лёгкое небо | Подписаться
#aviation#ГА#B737#Winglets
🇺🇸Boeing 737 United Airlines столкнулся с двумя машинами противообледенительной обработки в Денвере
📌6 марта Boeing 737-800 United Airlines, готовившийся к рейсу в Нэшвилл, начал руление преждевременно и ударил крыльями две противообледенительные машины. Экипаж решил, что обработка завершена и техника убрана за линии безопасности, хотя два автомобиля всё ещё стояли перед крыльями. Одна из машин от удара опрокинулась на бок
🔵По данным NTSB, пилоты были заняты разговором, когда второй пилот услышал брифинг от наземной команды и подтвердил его. Капитан не был уверен, что сообщение адресовано их рейсу. После получения разрешения на руление самолёт тронулся – наземная бригада не успела его остановить
🔵Из 136 человек на борту никто не пострадал, один сотрудник наземной службы получил незначительные травмы. Самолёт получил серьёзные повреждения крыльев, элеронов и предкрылков. Расследование продолжается
⬅️Как думаете, чья ответственность в данной ситуации – экипажа или наземной службы?
Лёгкое небо
#aviation#news#UnitedAirlines#B737#Денвер#NTSB
🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣
📌Дорогие подписчики, мы продолжаем модернизацию канала, поэтому сегодня собрали для вас глоссарий с основными хэштегами канала
Основные:
#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
🔵Мы непрерывно работаем над тем, чтобы каждый день радовать вас качественным контентом и удобной навигацией по каналу
⬅️Если у вас есть идеи по новым рубрикам на канале - пишите их в комментарии. Кто знает, возможно именно ваша идея будет воплощена в жизнь 👀
Лёгкое небо