Установить свойства виджета в 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
🚢 ВерфьEastern Shipbuilding спустила на воду второй буксир для компании Saltchuk Marine.
Американская Eastern Shipbuilding Group (ESG) спустила на воду второй буксир в серии из четырёх судов, заказанных Saltchuk Marine для операций сопровождения и портовой буксировки.
Суда строятся по проекту Robert Allan Ltd. и будут оснащены двигателями Caterpillar с тягой до 86 тонн, соответствуя экологическим стандартам EPA Tier IV. Поставка всей серии запланирована на 2026 год.
С операционной точки зрения, обновление флота направлено на повышение эффективности и экологичности портовых операций, особенно на западном побережье США.
Для рынка это подтверждает устойчивый спрос на современные буксиры с высокими экологическими характеристиками и рост инвестиций в портовую инфраструктуру.
📌Eastern Shipbuilding Group, Inc. — верфь основана в 1976 году в США, частная судостроительная компания, специализируется на коммерческих и государственных судах; принадлежит семье Готье (Gauthier).
📌Saltchuk Marine — входит в группу Saltchuk Resources, основанную в 1982 году в США предпринимателем Майком Гарвей (Mike Garvey); сегодня группа находится в частной собственности семьи Гарвей и менеджмента и объединяет морские, логистические и энергетические активы.
#Shipping#Tugs#Shipbuilding#USA#Ports
🚢Gulf LNG Tugs усиливает флот новым буксиром "Jill".
Верфь Master Boat Builders передала портовый буксир "Jill", ставший шестым судном в серии, разработанной канадским проектным бюро Robert Allan Ltd..
Судно предназначено для эксплуатации компанией Gulf LNG Tugs of Port Arthur, совместным предприятием нескольких операторов буксирного флота в США.
Буксир длиной 28,04 метра и шириной 12,19 метра - обладает усилием на гаке свыше 85 тонн и оснащен системой пожаротушения класса ABS - Fire Fighting Vessel 1, что позволяет эффективно работать в условиях требований безопасности на СПГ-терминалах.
Судно является вторым из двух идентичных единиц, специально спроектированных под задачи обслуживания газовой инфраструктуры.
С отраслевой точки зрения ввод нового буксира отражает рост требований к безопасности и надежности операций в сегменте СПГ. Обслуживание СПГ-терминалов требует специализированного флота с высокой маневренностью и расширенными функциями аварийного реагирования, что стимулирует обновление буксирного парка.
Дополнительно развитие флота Gulf LNG Tugs of Port Arthur связано с расширением инфраструктуры СПГ на побережье Мексиканского залива США, где сосредоточены ключевые экспортные мощности. Это усиливает спрос на высокотехнологичные буксиры и специализированные портовые услуги.
📌Master Boat Builders — основана в 1978 году, частная судостроительная компания, базируется в США, принадлежит частным инвесторам.
#tugs#LNG#ports#shipping#USA
🚢Damen передала буксир проекта ASD Tug 2811 - компании Muller Dordrecht.
Группа Damen Shipyards Group передала буксир проекта ASD Tug 2811 компании Muller Dordrecht.
Судно, получившее имя "En Avant 19", пополнило флот оператора, уже включающий ранее поставленные "En Avant 25" и "En Avant 26" (проект серии ASD Tug 3212).
Буксир построен на верфи Damen Song Cam Shipyard во Вьетнаме и доставлен в порт Роттердам на борту многоцелевого судна. Новый буксир будет задействован как в офшорных операциях, так и на внутренних водных путях.
С технической точки зрения проект ASD Tug 2811 - представляет собой универсальную платформу длиной 28,57 м с шириной 11,43 м и тягой на гаке до 65 тонн. Конструкция с азимутальными движителями обеспечивает высокую маневренность, что критично для портовых и офшорных операций.
Принадлежность к линейке Next Generation Tugs указывает на оптимизированную гидродинамику корпуса и снижение расхода топлива, что напрямую влияет на эксплуатационные издержки и соответствие экологическим стандартам.
Обновление флота Muller Dordrecht свидетельствует о тренде среди европейских буксирных операторов — переходе к более универсальным и энергоэффективным судам, способным работать в различных сегментах без потери эффективности.
📌Damen Shipyards Group — основана в 1927 году, частная судостроительная группа, принадлежит семье Дамен (Нидерланды).
📌Muller Dordrecht — основана в 1938 году, частная буксирная и офшорная компания, принадлежит группе Muller Maritime Services (Нидерланды), основана в 1918 году Теуном Мюллером, с тех порт принадлежит семье Мюллер.
#tugs#Damen#offshore#ports#shipping
🚢PSA Marine завершает серию буксиров вводом в строй судна "PSA Nebula".
Сингапурская компания PSA Marine приняла в эксплуатацию портовый буксир "PSA Nebula", ставший последним судном в серии из 16 единиц. Проект разработан канадским бюро Robert Allan Ltd., а первое судно в серии — "PSA Gemini" — было поставлено в 2024 году.
Буксир длиной 30 м оснащен современным оборудованием для портовых операций, включая носовую лебедку, кормовой кран и якорные системы. Конфигурация рубки и рабочей палубы оптимизирована для обеспечения максимальной обзорности и эффективности при работе с различными типами судов — от контейнеровозов до барж с низким бортом.
С технической точки зрения "PSA Nebula" соответствует требованиям ABS и стандартам MLC 2006, предлагая улучшенные условия для экипажа и высокую эксплуатационную надежность. Конструкция корпуса и система кранцев адаптированы под интенсивные портовые операции, снижая износ оборудования.
С отраслевой точки зрения завершение серии отражает долгосрочную стратегию модернизации портового флота и повышение эффективности операций в крупнейших хабах. Рост размеров судов и интенсивности трафика требует более мощных и технологичных буксиров, способных обеспечивать безопасность и скорость обработки.
📌PSA Marine — основана в 1964 году, входит в PSA International, государственную группу, принадлежащую инвестиционному фонду Temasek Holdings (Сингапур).
#tugs#ports#shipping#Singapore#maritime
🚢Boluda вводит в эксплуатацию новый буксир на Темзе.
Компания Boluda Towage UK ввела в эксплуатацию новый буксир "VB Boluman", предназначенный для портовых и эскортных операций на реке Темза.
Судно с буксирным усилием 80 т, оснащено азимутальными движителями Kongsberg и двигателями Caterpillar, что обеспечивает высокую манёвренность и эффективность работы в сложных приливных условиях.
С операционной точки зрения, новый буксир повышает безопасность и пропускную способность порта, включая возможность участия в аварийно-спасательных операциях благодаря системе пожаротушения FiFi1.
Для рынка это подтверждает продолжающееся обновление портового флота с акцентом на экологические стандарты и высокую производительность.
📌Boluda Towage — часть испанской группы Boluda Corporación Marítima, основанной в 1837 году; частная компания, контролируемая семьёй Boluda.
#Shipping#Tugs#Ports#UK#Towage