Установить свойства виджета в 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
29 сентября НАТО, в координации с румынским военным руководством, начала дополнительные полёты самолётов E-3A AWACS в воздушном пространстве Румынии с целью отслеживания военной активности России.
Для выполнения дополнительных полётов задействованы борты, дислоцирующиеся на авиабазе Превеза в Греции.
#НАТО#AWACS
Вестник NATO
⚡️🇮🇷🇺🇸🇸🇦Иран ударил по одному из самых дорогих самолётов США в Саудовской Аравии
Речь идёт об американском E-3 Sentry AWACS — самолёте дальнего радиолокационного обнаружения и управления, который считается одним из ключевых элементов воздушного контроля США. The Wall Street Journal и Air & Space Forces сообщили, что этот самолёт был повреждён в результате иранского удара по базе Prince Sultan в Саудовской Аравии 27 марта. Сообщалось также о раненых американских военных и повреждении других самолётов.
E-3 Sentry — это не обычный борт.
Это “глаза” и “мозг” воздушной войны: обнаружение целей, координация авиации, контроль пространства на сотни километров. И если такой самолёт выведен из строя, даже частично, это уже серьёзный удар по американским возможностям в регионе.
💰 Стоимость одного такого самолёта действительно измеряется сотнями миллионов долларов, а сами E-3 давно считаются дефицитным и трудно заменяемым ресурсом для ВВС США.
#Иран#США#СаудовскаяАравия#AWACS#E3Sentry#БлижнийВосток#Геополитика
🇦🇲Моя Армения🇦🇲Իմ Հայաստան
Подписаться 👉@Im_Hayastan
⚡️Иранци у нападу на стратешке ефективе Војске САД "преполовили" високовредну летелицу за ваздушно осматрање, јављање и навођење E-3G Sentry
Саудијска Арабија — према наводу Defence Industry Europe, у иранском ракетно-дронском удару на базу „Принц Султан“ 27. марта погођен је амерички E-3G Sentry AWACS, рањено више од 10 војника, од којих 2 теже. Наводно су оштећени и авио-танкери за допуну горивом у ваздуху. Америчка CENTCOM није коментарисала инцидент, а како кажу западни медији размере оштећења летелице још нису независно потврђене (судећи по #фото могла би се лимарија допеглати ☺️); по неслужбеним подацима, у бази је пре удара било распоређено 6 авиона E-3.
✖️Карактеристике летелице
E-3G Sentry AWACS је тешка ваздухопловна-платформа за рано упозорење, ваздушно осматрање, командовање и управљање борбеним дејствима, базирана на летелици Boeing 707.
Кључни елемент система је ротирајућа радарска антена изнад трупа, која омогућава широко поривање ваздушног простора, откривање циљева на великим даљинама, навођење ловачке авијације и координацију извођења сложене ваздушне/ваздушно-копнене битке. Посада се састоји од пилота и оператера на радару, делује као „ваздухопловни командни пункт“ и интегрише ISR [обавештајно-извиђачко-осматрачке] и C2 [командно-управљачке] функције. Управо зато E-3G није само сензор, већ критичан мрежноцентрични чвор током операције остварења и одржавања превласти у ваздушном простору.
✖️Тежак губитак за Војску САД
Последице целог догађаја су озбиљне. Флота је, према наведеном тексту, сведена на 16 авиона, уз оперативну спремност од свега 56% летелица у фискалној 2024. години, што значи да би губитак и једног оперативног примерка додатно сузио капацитет за ваздушно осматрање, јављање и навођење. У ширем смислу, то повећава притисак на преостале AWACS ресурсе, продубљује ризик од „рупа“ у ситуационој свести и убрзава потребу за заменом платформом E-7.
→ Извор: /t.me/borbeni_efektivi
→ Линк: /t.me/borbeni_efektivi
🪖#САД〣#Саудијска_Арабија〣#E3G_Sentry〣#AWACS〣#USAF〣#CENTCOM〣#ваздухопловство
🇷🇸https://t.me/borbeni_efektivi
⚡️Западни војни експерти* сматрају да би Русија могла имати обавештајну улогу у уништењу "летећег радара" E-3G Sentryкоји је понос Војске САД
Они су признали да је губитак AWACS платформе озбиљан удар на америчке способности ваздушног надзора, управљања ловачком авијацијом и заштите од непријатељских авиона и ракетних система.
Према њиховим речима, E-3 обезбеђује надзор над до 310.000 km² бојишта, од тла до стратосфере, и може истовремено пратити око 600 ваздушних али и копнених циљева, укључујући авионе, ракете, веће БпЛ па и тенкове. Америчка флота броји 17 авиона E-3, што ову платформу чини једним од кључних чворова командно-осматрачке архитектуре.
Посебно је значајна оцена да јеE-3 наводно могао открити дрон Shahed лансиран са удаљености од 320 km чак 85 минута раније него копнени радар.
Наводи се да летелица није уништена у ваздуху, већ на тлу, што је оцењено као тежак пропуст у заштити снага. Истовремено се износи претпоставка да је Иран могао имати руску помоћ у виду географских координата и сателитских снимака за прецизно одређивање циља.
Закључак аналитичара је да Иран селективно гађа ограничен број високовредних циљева — радаре, авионе-цистерне и AWACS — уз реалан оперативни ефекат.
* Седрик Лихтон — CNN-ов војни аналитичар и пензионисани пуковник Ратног ваздухопловства САД; наведен је и као некадашњи члан посаде на AWACS летелици,Питер Лејтон — пензионисани официр Ратног ваздухопловства Аустралије и сарадник Griffith Asia Institutea, Кели Грјеко — аналитичарка Stimson Centra.
→ Извор:/t.me/borbeni_efektivi
→ Линк: /t.me/borbeni_efektivi
🪖#САД〣#AWACS〣#E3〣#Иран〣#Русија〣#ваздухопловство〣#ISR#Ракете#радар#губици
🇷🇸https://t.me/borbeni_efektivi