TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 2 слични објави

Пребарај: #maritimerisk

当前筛选 #maritimerisk清除筛选

🚢Карта напряжения: горячие точки в судоходстве и морской логистике. Красное море и Суэц. Маршрут частично возвращается в расписания отдельных линий, но коридор остаётся зоной повышенного риска и страховой неопределённости. Рынок видит смешанные сигналы по восстановлению транзита и сохраняет повышенную волатильность по ставкам и слотам. Ормузский пролив и Персидский залив. Эскалация и военная активность вокруг Ирана поддерживают премии за риск и чувствительность танкерного рынка. Для операторов критичны скорость и возможность прохода, корректная оценка угроз и готовность к ограничениям движения. Чёрное море. Военные риски и вероятность ударов по портовой инфраструктуре продолжают влиять на доступность маршрутов и стоимость покрытия. Отдельный фактор — рост случаев навигационных помех и необходимость усиленного контроля безопасности рейса. Балтика и Восточное Средиземноморье. На ряде участков усиливается проблема GPS-jamming/spoofing, что повышает требования к bridge procedures, резервным методам навигации и управлению рисками при заходах в чувствительные зоны. Панамский канал. После «дорожной» фазы ограничений рынок адаптируется к более структурированным механизмам распределения слотов и планированию транзитов. Любые изменения гидрологии и правил бронирования быстро транслируются в цепочки поставок на направлениях Атлантика–Тихий океан. Западная Африка и отдельные районы высоких рисков. Пиратская активность глобально остаётся фактором стоимости и охраны экипажа: даже при локальных улучшениях статистики риск для моряков и судов требует поддержания процедур BMP и работы с охранными провайдерами. 📌International Maritime Organization (IMO) основана в 1948 году и является специализированным агентством ООН, формирующим международные нормы безопасности и предотвращения загрязнения с судов. Организация принадлежит системе ООН и управляется государствами-членами. #shipping#maritimerisk#Suez#Hormuz#logistics

🚢Ормузский пролив: влияние на сухогрузы, СПГ-танкеры и глобальные торговые потоки. По данным аналитической платформы Kpler, фактическая остановка транзита через Ормузский пролив начинает оказывать системное влияние на несколько сегментов морской торговли, выходя далеко за рамки нефтяного рынка. Транзит сухогрузов через пролив сократился на 91%, при этом около 280 балкеров остаются заблокированными в регионе. Наиболее затронуты балкеры типоразмеров Panamax, Supramax и Handysize, тогда как сегмент балкеров типоразмера Capesize практически не работает в этом коридоре. Ситуация влияет и на другие рынки. Персидский залив обеспечивает 16–18% мировых морских поставок удобрений и около 20% глобальной торговли СПГ. При этом терминал Ras Laffan временно остановлен, а ставки СПГ-фрахта в Атлантическом бассейне выросли более чем на $100 000 в сутки за одну торговую сессию. Дополнительным фактором риска остаются электронные помехи: с конца февраля зафиксировано более 100 инцидентов GNSS-интерференции, влияющих на навигацию и мониторинг судов. Аналитики отмечают, что текущая ситуация скорее представляет собой «коммерческое сдерживание», а не формальную блокаду. Однако последствия для глобальных цепочек поставок могут проявляться в течение нескольких месяцев, поскольку часть эффектов ещё не полностью отражена в фрахтовых индексах. 📌Kpler — международная аналитическая компания, основанная в 2014 году во Франции, специализируется на мониторинге энергетических потоков и судоходства на основе спутниковых и AIS-данных. Компания является частной и принадлежит инвестиционным фондам и основателям. #Hormuz#DryBulk#LNGShipping#Kpler#MaritimeRisk