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

Резултати

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

Пребарај: #insolvency

当前筛选 #insolvency清除筛选
English Law Report

@enlawreport · Post #1941 · 26.02.2026 г., 07:41

Лондонский коммерческий суд снова напомнил рынку простую вещь: банкротство истца не защищает от процессуальных рисков. В деле Undritz v D’Amico Tankers суд обязал предоставить обеспечение судебных расходов, несмотря на то что требования предъявлены через немецкого insolvency administrator в интересах компаний-банкротов Фабула внешне типичная для shipping-сектора: около 1 млн долларов по четырём чартер-партиям, защита строится на давности и договорном сет-оффе. Но фокус решения — не в морском праве, а в процессуальной тактике. Ответчик заявил security for costs на стадии до рассмотрения reverse summary judgment. И выиграл. Ключевой момент. Формально истец — физическое лицо, администратор. Но суд смотрит глубже: по английской логике иск о долге предъявлялся бы от имени компаний. Следовательно, именно компании считаются «claimant» для целей CPR 25. Это критично. Попытка позже изменить позицию и уйти от этой конструкции была отвергнута. Аргумент «иск будет задушен» не сработал. Суд чётко разделил: то, что администратор лично не может платить, не равно доказательству того, что сами компании не способны привлечь средства. Доказательств невозможности финансирования не представлено. Значит, stifling не доказан. По сумме суд применил прагматичный подход. Из заявленных примерно £237k были исключены математические ошибки, расходы на возможные, но ещё не поданные защиты, а также затраты на само ходатайство. Далее — стандартный дисконт на потенциальное сокращение при detailed assessment. В итоге обеспечение определено в £90k Это баланс: защита ответчика от безвозвратных расходов без чрезмерного давления на истца. Практические выводы для рынка: 1. Insolvency не создаёт иммунитета от security for costs. 2. Довод о stifling требует финансовой конкретики, а не ссылок на процедуру банкротства. 3. Суд не будет глубоко анализировать merits на стадии обеспечения. 4. Преакционные расходы могут учитываться при расчёте. 5. Процессуальная стратегия в Лондоне — это финансовая стратегия. И ещё один штрих. Суд отдельно указал на почти полное отсутствие расходов на переговоры и напомнил об активной роли ADR после Churchill v Merthyr Tydfil. Коммерческий суд ожидает реальных попыток урегулирования. Лондон остаётся предсказуемым. Но он не прощает процессуальной небрежности. #EnglishLawReport#CommercialCourt#SecurityForCosts#ShippingLaw#Insolvency#LitigationStrategy