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 слични објави

Пребарај: #arbitrationact1996

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

@enlawreport · Post #1730 · 10.09.2025 г., 05:35

День 11 — Дело №10: MSH Ltd v HCS Ltd [2025] EWHC 815 (Comm) После месячного перерыва вернулся к работе над статьёй для Arbitration International. И сразу — яркое дело про скрытых игроков в сырьевой торговле. Главный вопрос: если контракт подписан с посредником, но деньги даёт третья компания, можно ли втянуть её в арбитраж как «скрытого принципала»? 🔍 Суть дела MSH (продавец) подписала контракт с CTW (формальный покупатель). Но ключевой элемент сделки — аккредитив от HCS. MSH заявила: «у нас договор только с CTW». HCS ответила: «CTW действовал для нас, мы финансировали и контролировали сделку». Судья Фокстон посмотрел на реальность: CTW не имела собственных средств, её модель работы была «front-to-back» — всё за счёт HCS. Переписка в WhatsApp прямо показывала, что HCS согласовала сделку. Итог: HCS признана скрытым принципалом, арбитражная оговорка действует и для неё. 📌 Аргументы суда В английском праве правило старое: если агент действует с полномочиями и намерением — принципал может быть стороной договора, даже если не назван. Boilerplate-оговорки («entire agreement», «assignment», «confidentiality») слишком общие, чтобы перекрыть доктрину. Нужна прямая фраза «только названные стороны имеют права и обязанности». Факты перевесили: аккредитив от HCS, счета CTW как «facilitation/share of proceeds», никакой «перепродажи» между CTW и HCS. Всё указывало, что CTW работала именно на HCS. 🧠 Уроки Суд оценивает не только бумагу, но и коммерческую реальность. Boilerplate-клаузулы не спасают, если не прописан явный запрет. Кто финансирует — тот и становится стороной, вместе с арбитражной оговоркой. Старые дела (Siu Yin Kwan, Teheran-Europe, Kaefer) остаются опорой, но применяются гибко. 📎 Личная аналитика Этот кейс — напоминание: арбитраж в Англии стоит на защите коммерческой логики. Хотите спрятаться за посредником? Не выйдет. Суд посмотрит, кто реально держит деньги и контроль. В итоге предсказуемость для рынка возрастает, но исчезает пространство для серых схем. 📘Что я беру для статьи? Для статьи я беру этот кейс как пример того, как английские суды балансируют сухой текст договора и реальную структуру сделки. И как арбитражная оговорка работает даже против «невидимых» участников. 🤔 Вопрос к коллегам А не пора ли ввести стандартную anti-undisclosed-principal оговорку в сырьевых контрактах? Чтобы не тратить время и деньги на подобные споры. Или, наоборот, такая гибкость — важный элемент торговли? #ArbitrationInternational#UndisclosedPrincipal#CommodityTrade#ArbitrationAct1996#EntireAgreement#AybekWrites#LegalStrategy#HighCourtUK#LawyersWhoThink