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

Пребарај: #chaingpt

当前筛选 #chaingpt清除筛选

⚡️Storm Trade, a Top DeFi Product, Ready to Launch Its Token The crypto market is currently going through a phase change: we see a shift in sentiment from memecoins to fundamental projects. Traders are less active in flying into no-name tokens that do not have strong products behind them. The latest launches of the TON ecosystem are not encouraging, the release of $HMSTR showed how quickly the situation on the market can change, bringing the end of the tap2earn era closer. And while clickers were taking money from the retail users, the development of DeFi projects continued. In the last 12 months, Perp DEXs have taken center stage in the web3 world. Derivatives trading volumes significantly exceed spot, by 2-10 times, and this figure continues to grow. New players are emerging. ⚡️ChainGPT IDO Starts October 14th IDO is taking place on the #ChainGPT launchpad, and the premarket on the TON network and on #MagicSquare confidently shows x3 from the initial presale price, which hints at buy pressure and a positive community mood. Only about 4% of the token will be allocated for the IDO. You already know that $STORM stakers will receive 30% of protocol fees, discounts on fees and additional goodies in the form of #DAO. And the token itself will participate in the liquidity buffer, participating in the constant buyback from the market. The ChainGPT IDO starts on October 14th, which means the listing will happen very soon, usually within a few days. In numbers: ⚡️Storm Trade generates from $5M to $40M per day ⚡️The platform rewards liquidity providers with most of the commissions ⚡️4M+ connected wallets What potential profit awaits holders? Let's look at an example: over the last 30 days, the platform has collected about $800k in fees (source: DefiLlama), which means that token stakers would have received ~$240k. According to tokenomics and unlocks, only about 20-30M tokens will be available for staking after the launch, and we get ~100% APR for the token price for the IDO. This is without taking into account the rate growth. While we watch how tapalki are launched and fade away, #StormTrade makes a real product that is already in a popular market segment, and the share of perps continues to grow. #DYOR and get ready to start: https://storm.tg/token #IDO#DEX#Perp#Web3#TON