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

Резултати

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

Пребарај: #globalevents

当前筛选 #globalevents清除筛选
EdgeMarket.AI 📣

@edgemarketai · Post #8183 · 13.05.2026 г., 14:33

🌍 EDGE MARKET FEATURED EVENT Will the MV Hondius cruise ship be sunk after evacuation? Real world events are becoming tradable intelligence markets. Follow live sentiment, market positioning, and community forecasting in real time on EdgeMarket. ⚡ AI Verified Markets ⚡ Decentralized Forecasting ⚡ Real Time Event Sentiment ⚡ Web3 Prediction Infrastructure 📊 Event Link: https://edgemarket.ai/bnb/social-media/will-the-mv-hondius-cruise-ship-be-sunk-after-evacuation/statistics/6a02f01be789807ba8aa0b55 #EdgeMarket#PredictionMarkets#Web3#Crypto#SIGNAL#GlobalEvents#Forecasting

Crypto M - Crypto News

@CryptoM · Post #64600 · 09.04.2026 г., 10:02

🚀 Binance Wallet Introduces Prediction Markets for Real-World Outcomes Binance Wallet announced on X the introduction of Prediction Markets, a new feature provided by Predictdotfun. This service allows users to take positions on various real-world outcomes, ranging from cryptocurrency trends to global events. The platform aims to simplify the process by eliminating the need for complicated wallet setups and gas fees, making it more accessible to users. The Prediction Markets feature is designed to cater to a wide audience, offering opportunities to engage with real-world events in a straightforward manner. By removing technical barriers such as wallet configurations and transaction fees, Binance Wallet seeks to enhance user experience and broaden participation. However, it is important to note that this service is available only in selected regions, which may limit access for some users. This initiative reflects Binance Wallet's ongoing efforts to innovate and expand its offerings in the digital asset space. By integrating Prediction Markets, the platform provides users with a unique way to interact with and speculate on real-world events, potentially attracting a diverse range of participants interested in both cryptocurrency and global developments. As the service rolls out, users in eligible regions can explore this new feature and engage with the dynamic world of prediction markets. #BinanceWallet#PredictionMarkets#Cryptocurrency#GlobalEvents#DigitalAssets#Fintech#Blockchain#CryptoTrading#UserExperience#Innovation