Установить свойства виджета в 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
🚢Танкерный рынок в поиске направления: волатильность усиливается по всем сегментам.
По данным Baltic Exchange, рынок танкеров демонстрирует разнонаправленную динамику: в сегменте VLCC сохраняется высокая неопределённость на фоне кризиса в Ормузском проливе, что ограничивает количество сделок и искажает ценовые ориентиры.
В сегментах LR и MR наблюдается рост ставок на отдельных маршрутах, особенно в Атлантике и США, тогда как средиземноморские направления остаются под давлением.
Сегмент танкеров типа Suezmax демонстрирует умеренную коррекцию с ростом ставок на ключевых направлениях из Ближнего Востока.
С операционной точки зрения, рынок переходит в фазу высокой волатильности: геополитика и маршрутизация становятся ключевыми драйверами, а традиционные бенчмарки теряют точность из-за ограниченного числа сделок.
Для отрасли это означает усиление неопределённости и рост спредов между сегментами, где локальные факторы и доступность тоннажа формируют краткосрочную динамику ставок.
📌Baltic Exchange — основана в 1744 году в Лондоне, ведущая организация по расчёту фрахтовых индексов, принадлежит Singapore Exchange (SGX).
#Tankers#Shipping#Freight#BalticExchange#Oil
🚢Танкерный рынок сохраняет неопределённость: VLCC под давлением, MR и Aframax выглядят устойчивее.
По данным Baltic Exchange, танкерный рынок завершил неделю разнонаправленно: сегменты перевозки чистых нефтепродуктов и сырой нефти - демонстрируют высокую волатильность, при этом ключевым фактором остаётся неопределённость в районе Ближнего Востока и изменение физического грузопотока.
В нефтепродуктовом сегменте ставки на танкеры типа LR2 на маршруте MEG–Japan удержались в районе WS550, тогда как направление MEG–UK Continent немного укрепилось.
Тип LR1 также показал умеренный рост на маршруте MEG–Japan до WS656.
В MR-сегменте рынок оставался более стабильным: маршруты из Ближнего Востока и Западной Африки удержались на высоких уровнях, а американский рынок демонстрировал смешанную динамику на фоне колебаний арбитражей и предложения тоннажа.
В сегменте крупных нефтетанкеров ситуация менее однозначна.
Рынок супертанкеров типа VLCC в Ближнем Востоке остаётся в зоне повышенной неопределённости: ставки по маршрутам MEG–China и West Africa–China снизились, что указывает на давление со стороны ограниченного числа грузов и осторожности фрахтователей. При этом отдельные трансатлантические направления показывают более устойчивую динамику.
Сегмент танкеров типа Suezmax испытывает давление на маршруте Nigeria–UK Continent, где слабый спрос и избыток доступного тоннажа формируют риск дальнейшего снижения ставок.
В то же время рынок Black Sea–Mediterranean показал укрепление, что отражает локальный дефицит тоннажа и активность по коротким рейсам. Aframax в Атлантике выглядит сильнее благодаря росту ставок из Мексиканского залива и Карибского бассейна.
С отраслевой точки зрения, текущая картина подтверждает фрагментацию танкерного рынка: геополитика поддерживает премию за риск, но отсутствие стабильного физического грузопотока ограничивает потенциал роста. В краткосрочной перспективе наиболее чувствительными останутся танкеры VLCC и Suezmax, тогда как MR и отдельные Aframax-направления сохраняют более устойчивую коммерческую базу.
📌Baltic Exchange — основана в 1744 году, ведущая международная организация по формированию фрахтовых индексов и рыночных оценок в судоходстве, принадлежит Singapore Exchange (SGX).
#tankers#VLCC#freight#shipping#BalticExchange
🚢Baltic Exchange пересматривает методологию ставок из-за кризиса на Ближнем Востоке.
Baltic Exchange инициировала пересмотр методологии расчета фрахтовых индексов для Ближнего Востока на фоне растущей нестабильности в Ормузском проливе.
Ключевое предложение — допустить использование альтернативных портов погрузки за пределами Персидского залива при расчете бенчмарков, сохранив при этом возможность учета традиционных маршрутов, что направлено на повышение гибкости и снижение риска приостановки индексов.
С отраслевой точки зрения изменения отражают беспрецедентное давление геополитики на базовые рыночные инструменты.
Индексы Baltic Exchange используются для расчетов деривативов, физических контрактов и оценки рынка, поэтому их корректность критически важна.
Дополнительно рынок сталкивается с проблемой отсутствия реальных сделок (fixtures), что вынуждает брокеров использовать альтернативные методы оценки, включая сопоставимые маршруты и TCE-модели.
Таким образом, кризис в Ормузе начинает напрямую влиять не только на перевозки, но и на саму архитектуру формирования рыночных бенчмарков.
📌Baltic Exchange — основана в 1744 году, независимая организация, базируется в Лондоне, принадлежит Singapore Exchange (SGX).
#shipping#freight#BalticExchange#markets#risk
🚢Ставки VLCC достигли максимумов со времён нефтяного эмбарго ОПЕК 1973 года.
Индекс ставок для нефтяных танкеров достиг исторического уровня после перенаправления части грузов Saudi Aramco через Красное море и ограничений транзита через Ормузский пролив.
По данным Baltic Exchange, оценка маршрута Ближний Восток – Азия для танкеров типа VLCC достигла Worldscale 465,6, что эквивалентно примерно $481 200 в сутки.
Это самый высокий показатель со времён нефтяного эмбарго ОПЕК 1973 года.
Аналитики Fearnley Securities отмечают, что даже при возможном снижении спроса предложение тоннажа останется ограниченным.
Часть сырья фактически «заперта» в Персидском заливе, а альтернативные маршруты, включая транзит через Красное море и обход Африки, увеличивают расстояние перевозок и усиливают тонно-мильный фактор.
Для танкерного рынка это означает сочетание дефицита доступного флота, резкого роста страховых премий и удлинения рейсов, что поддерживает экстремальные уровни фрахтовых ставок.
📌Fearnley Securities AS — норвежская инвестиционно-аналитическая компания, основанная в 1869 году, специализируется на финансовых и рыночных исследованиях в судоходстве и энергетике. Компания является частной и входит в группу Fearnley.
#VLCC#TankerMarket#FreightRates#BalticExchange#OilShipping
🚢VLCC: спотовые ставки выросли до шестилетнего максимума.
Ключевой индикатор спотового рынка VLCC достиг максимальных значений почти за шесть лет на фоне активного спроса со стороны крупных азиатских фрахтователей на загрузки с Ближнего Востока и Западной Африки.
Индекс спотового TCE (тайм-чартерного эквивалента), публикуемый Baltic Exchange, в пятницу приблизился к уровню $132 000 /сутки. За неделю показатель вырос на 22,8%, что стало самым высоким значением с апреля 2020 года. Средняя спотовая доходность по сегменту превысила отметку $130 000 /сутки.
Рост ставок отражает сжатие доступного предложения тоннажа в сочетании с концентрацией спроса на ключевых экспортных направлениях.
В текущей фазе рынок демонстрирует высокую волатильность и чувствительность к активности азиатских импортеров нефти, что усиливает краткосрочные колебания фрахтовых уровней в классе крупнотоннажных танкеров VLCC.
📌Baltic Exchange — британская организация, основанная в 1744 году в Лондоне, специализируется на публикации фрахтовых индексов и морской рыночной информации. С 2016 года принадлежит биржевой группе Singapore Exchange (SGX).
#VLCC#TankerMarket#FreightRates#BalticExchange#OilShipping
🚢Балкеры типоразмера Panamax: широкий диапазон ставок и активность на трансатлантических маршрутах.
На рынке балкеров типоразмера Panamax сегодня фиксировалась разнонаправленная динамика с диапазоном ставок от $10 500 до $26 500 в сутки в зависимости от региона и направления.
Атлантика демонстрирует более высокие уровни.
Рейсы Аргентина – Франция фиксировались около $26 500, Аргентина – ARAG — порядка $25 500, Нидерланды – Восточное побережье Индии (через USEC) — около $24 500. Трансатлантические направления US Gulf – Германия заключались в районе $18 500 + BB.
Тихоокеанский рынок остаётся стабильным: Австралия – Южный Китай и Австралия – Япония фиксировались в диапазоне $17 000–19 500.
Индийский океан: рейсы Юго-Восточная Азия – Индия проходили на уровнях $12 500–16 500.
Маршруты ECSA продолжают поддерживать ставки благодаря зерновому экспорту из Аргентины и Бразилии, включая сделки с дополнительными бонусами (BB) до $750 000. В целом рынок демонстрирует устойчивость при сбалансированном тоннаж-листе и активной торговле аграрными и угольными грузами.
📌Baltic Exchange — британская морская биржа, основанная в 1744 году и публикующая ключевые фрахтовые индексы мирового судоходства. С 2016 года принадлежит Singapore Exchange (SGX).
#Panamax#DryBulk#FreightRates#ECSA#BalticExchange