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

Резултати

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

Пребарај: #dom

当前筛选 #dom清除筛选

Друзья, всем привет!👋 Хотим поделиться с Вами прекрасной новостью - в этом году, компании AXELOT исполняется 25 лет!🥳 Представляете?😱 Целая четверть века, которую мы посвятили созданию и развитию своих продуктов, которые сделали нас лидерами рынка автоматизации логистики. Четверть века развития отраслевых компетенций и географии присутствия. И это все для того, чтобы помогать нашим Заказчикам развивать свой бизнес в ногу со временем.🥇 Мы решили с размахом отметить такую знаменательную дату и хотим поделиться своей радостью со всеми! Мы предоставляем скидку 25% на приобретение конфигурации #AXELOT при условии покупки лицензий до 30 июня 2023 года. 👉Все подробности можно уточнить у @Zhdanov_Axelot и @AndreyVolgai #AXELOT#WMS#WOS#TMS#TOS#DOM

Mirracoin Новости

@MirraChannel · Post #243 · 04.12.2024 г., 08:26

#DOM#Bid#Ask#Spread#база 🚀 Глубина рынка криптовалют: ключ к успешной торговле В мире криптовалют понимание глубины рынка (Depth of Market, DOM) является важным инструментом для трейдеров. DOM отображает совокупный объём заявок на покупку (биды) и продажу (аски) по различным ценовым уровням, предоставляя информацию о ликвидности и потенциальных ценовых движениях. 🔍Основные компоненты глубины рынка: 1⃣ Биды (Bid): заявки на покупку актива по определённой цене. 2⃣ Аски (Ask): аявки на продажу актива по заданной цене. 3⃣ Спред (Bid-Ask Spread): разница между самой высокой ценой покупки и самой низкой ценой продажи. Анализируя эти данные, трейдеры могут оценить ликвидность актива и определить оптимальные точки входа и выхода из сделок. Глубокий рынок с большим количеством бидов и асков обеспечивает стабильность цен и позволяет исполнять крупные ордера без значительных ценовых колебаний. ⚡ Факторы, влияющие на глубину рынка криптовалют: 1⃣ Ликвидность: большее количество активных трейдеров повышает ликвидность, снижая вероятность резких ценовых движений при крупных сделках. 2⃣ Спред: узкий спред свидетельствует о высоком интересе к активу и стабильности рынка. 3⃣ Популярность биржи и объём торгов: крупные биржи с высоким объёмом торгов, такие как Millionero, обеспечивают лучшую глубину рынка. 4⃣ Торговые пары: основные пары, например, BTC/USDT, обычно обладают большей глубиной по сравнению с менее популярными. 5⃣ Экономические индикаторы: положительные новости и экономический рост усиливают доверие трейдеров, увеличивая глубину рынка. Понимание и использование глубины рынка позволяет трейдерам принимать обоснованные решения, эффективно управлять рисками и повышать прибыльность торговых операций. 💬 Хотите узнать больше о том, как использовать глубину рынка в своей стратегии? Подпишитесь на наш канал, чтобы получать самые актуальные советы и инсайты! ___________ @MirraChannel😎

Cason's life

@CasonKervis · Post #590 · 12.03.2026 г., 03:31

#优质博文#JavaScript#DOM#前端#新特性 Goodbye innerHTML, Hello setHTML:介绍 JavaScript 新方法 .setHTML() 及其替代 .innerHTML() 并提升 Web 安全性的能力。 引用了 Mozilla Hacks 上的一篇文章 Goodbye innerHTML, Hello setHTML: Stronger XSS Protection in Firefox 148,阐述了 Firefox 148 中加强 XSS 防护的细节。 一篇博客文章 shows the recipe,其中展示了如何利用 .setHTML() 几乎完全消除 DOM-XSS 风险。 AI 摘要:这篇博文重点介绍了 JavaScript 中新推出的 .setHTML() 方法,它是 Sanitizer API 的组成部分,旨在取代传统的 .innerHTML() 方法,从而显著增强网站对跨站脚本 (XSS) 攻击的防护能力。文章指出 .setHTML() 能够作为 .innerHTML() 的直接且更安全的替代方案,并提及 Mozilla 对此功能的完美命名,同时引用了多篇相关技术文章和播客节目,深入探讨了该方法如何“基本消除所有 DOM-XSS 风险”。 author Chris Coyier

GitHub Trends

@githubtrending · Post #15044 · 09.08.2025 г., 13:00

#javascript#capture_screenshots#clone#dom#js#screenshot snapDOM is a very fast and accurate tool that captures any part of a webpage (HTML elements) as images, including styles, fonts, shadows, and even hidden parts like shadow DOM. It can save these captures in many formats like SVG, PNG, JPG, WebP, or canvas, and works without extra dependencies using standard web APIs. You can easily customize the image size, quality, and even exclude parts you don’t want. It handles complex web features and is much faster than similar tools, making it great for quickly creating high-quality snapshots of web content for use in apps or presentations. This saves you time and effort in capturing styled webpage visuals. https://github.com/zumerlab/snapdom