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

Резултати

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

Пребарај: #userengagement

当前筛选 #userengagement清除筛选
VEON AdTech

@veonadtech · Post #286 · 17.12.2025 г., 10:15

😮Gen Z не «выходит» в онлайн — он там живёт. Мы проанализировали, как выглядит их цифровой день: от утренних скроллов до вечернего прайм-тайма. Кто забирает внимание и когда — в карточках выше👆 #VEONAdTech#GenZInsights#AttentionEconomy#DigitalData#UserEngagement#MediaTrends 👋👋Всё о digital-рекламе в Узбекистане: аналитика, лайфхаки и готовые решения.

Crypto M - Crypto News

@CryptoM · Post #65412 · 13.04.2026 г., 06:01

🚀 Pieverse Booster Token Rewards Now Available for Claiming Binance Wallet announced on X that participants in the Pieverse Booster activities can now claim their PIEVERSE token rewards for phases 1, 2, 3, and 4. Users are encouraged to navigate to the 'Discover' section, select 'Booster,' and then proceed to 'My Total Rewards' to access their accumulated tokens. By clicking on the 'Batch Claim' option in the upper right corner, users can efficiently collect all their rewards in one go. This update marks the availability of token rewards for those who participated in the initial phases of the Pieverse Booster activities. The process is designed to streamline the claiming experience, allowing users to consolidate their rewards with ease. Participants who have engaged in these activities can now benefit from their involvement by accessing their earned tokens through the specified steps. This initiative is part of Binance's ongoing efforts to enhance user engagement and reward participation within its platform. #Pieverse#Booster#TokenRewards#BinanceWallet#PIEVERSE#ClaimRewards#UserEngagement#Cryptocurrency#Blockchain#Binance

VEON AdTech

@veonadtech · Post #264 · 25.09.2025 г., 11:15

🆒 Экосистема VEON Ads стала еще шире: теперь в ней платежное приложение Beepul Это цифровая среда, где пользователь уже настроен на действие — и точно знает, что делает. Что это дает бренду? 😎 Не просто охват, а контекст в моменте действия 🥇 Не баннер, а уместное предложение 🗺 Не «в любом месте», а там, где это нужно VEON Ads продолжает расти: Мы наращиваем не количество показов — мы усиливаем качество точек взаимодействия.🏆 Хотите, чтобы ваше сообщение появлялось не «где-нибудь», а именно в момент решения? 📩 Пишите и мы обсудим, где это возможно. https://veonadtech.com/ru #VEONAdTech#VEONAds#Beepul#DigitalMarketing#AdTech#Ecosystem#UserEngagement#TargetedAdvertising#MarketingInnovation#DataDriven 👋👋Всё о digital-рекламе в Узбекистане: аналитика, лайфхаки и готовые решения.