Установить свойства виджета в 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
🚢AD Ports нацеливается на Черное море через партнерство с портом Констанца.
Группа AD Ports Group подписала рамочное соглашение с румынской National Company Maritime Ports Administration SA для изучения инвестиционных возможностей в порту Констанца — крупнейшем порту Черного моря.
Соглашение предусматривает потенциальные вложения в развитие инфраструктуры, внедрение цифровых решений и экологических стандартов.
Порт Констанца обработал около 88 млн тонн грузов и порядка 1 млн TEU в 2025 году, выступая ключевым узлом, связывающим морские маршруты с внутренними водными путями через Дунай.
С отраслевой точки зрения сделка отражает стратегию AD Ports Group по развитию Middle Corridor — альтернативного торгового маршрута между Китаем и Европой через Центральную Азию и Кавказ.
Расширение в Черноморском регионе усиливает логистическую связность и диверсифицирует маршруты поставок.
Дополнительно проект подчеркивает растущую конкуренцию за контроль над ключевыми транзитными узлами, где интеграция портовой, логистической и цифровой инфраструктуры становится критическим фактором конкурентоспособности.
📌AD Ports Group — основана в 2006 году, публичная компания, принадлежит инвестиционному холдингу ADQ, контролируемому правительством Абу-Даби (ОАЭ).
#ports#logistics#BlackSea#shipping#trade
🚢Словакия нацелена на газ из румынского офшорного проекта Neptun Deep.
Словакия заявила о заинтересованности в поставках газа с проекта Neptun Deepв Чёрном море.
Проект, реализуемый OMV Petrom и Romgaz, оценивается в 100 млрд куб. м запасов и должен начать добычу в 2027 году. К газу также проявляют интерес Германия и Венгрия.
С операционной точки зрения, развитие Neptun Deep усиливает роль Чёрного моря как альтернативного источника газа для Европы и снижает зависимость от традиционных поставщиков.
Для рынка это сигнал роста региональной энергетической интеграции и увеличения спроса на инфраструктуру транспортировки газа.
📌OMV Petrom S.A. — основана в 1997 году, крупнейшая нефтегазовая компания Румынии; контрольный пакет принадлежит австрийской OMV AG, при участии государства Румыния.
#Gas#Offshore#Europe#Energy#BlackSea
🚢Ставки на зерновые перевозки из Чёрного моря продолжают рост.
Фрахтовые ставки на перевозку зерна из Чёрного моря демонстрируют устойчивый рост по всем сегментам.
Для малого тоннажа (коустеров) - ставки достигают $30–32/т в Мармаре и до $55–57/т в Испании, тогда как крупнотоннажные балкеры типоразмера Panamax на маршруте в Южный Китай фиксируются на уровне $49–51/т.
В сегменте балкеров типоразмера Handysize - ставки на перевозку в Восточное Средиземноморье находятся в диапазоне $26–28/т, а для подтипа Small Handysize: $28–30/т, что отражает общий рост затрат.
С операционной точки зрения, ключевым драйвером остаётся рост цен на бункер на фоне конфликта на Ближнем Востоке, что увеличивает себестоимость рейсов и усложняет согласование сделок между судовладельцами и фрахтователями.
Для рынка это означает усиление волатильности и расширение спредов между ожиданиями сторон, при сохранении восходящего тренда ставок.
📌Источник: рынок/брокерская оценка (Black Sea grain market) — данные основаны на оценках участников рынка и фрахтовых брокеров, формирующих фрахтовые ориентиры в регионе.
#DryBulk#Grains#BlackSea#Freight#Shipping
🚢Черноморский рынок зерновых: ставки стабилизируются при снижении активности.
На неделе 15/2026 ставки на перевозку зерновых из Украины демонстрируют признаки стабилизации с умеренной коррекцией в сегменте Нandysize.
Для малотоннажного "coaster"-сегмента ставки остаются в диапазоне $28–30/т на Мармару, $36–38/т на Восточное Средиземноморье и $55–57/т в Испанию.
В сегменте балкеров типоразмера Small Handysizе (15-20K tdw) ставки варьируются от $26–28/т на Мармару до $52–54/т в Испанию, тогда как балкеры типоразмера Рanamax на направлении в Южный Китай оценивается на уровне $50–52/т., что указывает на сохраняющийся спрос на дальние маршруты при умеренной активности в региональных перевозках.
С отраслевой точки зрения рынок демонстрирует временное замедление, связанное с сезонным фактором (период пасхальных праздников) и ограниченным количеством спотовых грузов, что привело к снижению количества сделок и расширению спрэда между ожиданиями судовладельцев и предложениями фрахтователей.
При этом сегмент малого тоннажа ("coaster") - остается стабильным, а общее снижение активности не привело к значительному падению ставок. Это свидетельствует о сохранении базового баланса рынка, несмотря на краткосрочные колебания.
Таким образом, рынок находится в фазе временной паузы, где дальнейшее движение ставок будет зависеть от восстановления грузопотоков и сезонной активности.
📌Dynamic Shipbroking Inc. — основана в 2009 году, частная брокерская компания, базируется в Греции, принадлежит частным партнерам.
#drybulk#grain#BlackSea#freight#shipping
🚢Румыния консолидирует Черноморскую логистику через покупку оператора порта Джурджулешты.
Румыния завершила приобретение оператора порта Джурджулешты (Молдова) — ICS Danube Logistics — через Национальную компанию «Администрация морских портов Констанцы».
Сделка рассматривается как стратегический шаг для усиления позиций страны в Черноморском регионе.
Актив будет интегрирован в логистическую систему порта Констанца, что позволит расширить портовую связь и укрепить роль Румынии в транспортных коридорах Центральной и Юго-Восточной Европы.
С отраслевой точки зрения приобретение отражает усиливающуюся конкуренцию между портами региона, где контроль над ключевыми узлами и доступ к внутренним рынкам становятся критическими факторами.
Дополнительно развитие инфраструктуры, включая дорожные и портовые связи (в частности, с портом Галац), направлено на создание интегрированной логистической сети и повышение пропускной способности.
Румыния делает ставку на консолидацию портовых активов и развитие мультимодальных коридоров для усиления своей роли в региональной торговле.
📌ICS Danube Logistics SRL — основана в 2004 году, оператор порта Джурджулешты, ранее принадлежала частным инвесторам, в 2026 году перешла под контроль государства Румынии через порт Констанца.
#ports#BlackSea#logistics#Romania#trade
🔍 US military patrol plane spotted near Crimea. More NATO spy planes detected over Romania and Black Sea. Is something brewing? 🛩️🕵️♂️ Beware the eyes in the sky! Stay tuned for more updates. 💥💣#GeopoliticalTensions#NATO#BlackSea#Crimea#Surveillance
https://www.gazeta.ru/army/news/2023/09/27/21379327.shtml
Subscribe to @BadVolfNews
🚢Черноморские ставки растут на фоне подорожания бункера.
Согласно еженедельному Short Freight Report (Week 10/26), фрахтовые ставки на перевозки зерна из Украины демонстрируют рост на фоне увеличения стоимости топлива и геополитической напряжённости.
В сегменте Coasters ex-Ukraine ставки составляют:
— Мраморное море: $27–29/т
— Восточная Греция: $32–34/т
— Испания (Средиземноморье): $47–49/т
Для тоннажа типа Small Handy ex-Ukraine:
— Мраморное море: $25–27/т
— Восточная Греция: $29–31/т
— Испания (Средиземноморье): $44–46/т
В сегменте Handysize:
— Восточное Средиземноморье: $22–24/т
— Испания (Средиземноморье): $26–28/т
Для Panamax ex-Ukraine: ставки на направлении Южный Китай достигают $45–47/т.
По оценке рынка, начало марта принесло новые вызовы для Черноморского судоходства.
Рост цен на бункер (VLSFO +$50 и MGO +$100 за неделю) и геополитические риски вынуждают судовладельцев повышать фрахтовые индикативы. Ставки на маршрутах Украина–Средиземноморье уже выросли примерно на $2/т за последние недели.
📌 Операции в регионе остаются сложными для судовладельцев и фрахтователей, требуя большей гибкости при заключении контрактов и планировании рейсов.
#BlackSea#DryBulk#FreightRates#GrainTrade#ShippingMarket
🚢TPAO и Shell запускают офшорную разведку в болгарской части Чёрного моря.
Турецкая государственная компания Turkish Petroleum Corporation (TPAO) подписала соглашение о партнёрстве с Shell plc по разведке нефти и газа на участке Block 1-26 Khan Tervel в исключительной экономической зоне Болгарии.
Лицензионная площадь превышает 3 800 км² и расположена вблизи турецкого месторождения Sakarya в Чёрном море. Соглашение предусматривает пятилетний этап сейсморазведки с возможностью перехода к бурению разведочной скважины.
Проект вписывается в стратегию международной экспансии TPAO. В 2026 году компания также заключила соглашения с ExxonMobil, Chevron и BP.
Расширение разведочной активности в Чёрном море отражает стремление Турции диверсифицировать ресурсную базу и укрепить энергетическую безопасность региона.
📌Turkish Petroleum Corporation (TPAO) основана в 1954 году и является государственной нефтегазовой компанией Турции, полностью контролируемой правительством страны.
#offshore#BlackSea#TPAO#Shell#energyexploration