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

Резултати

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

Пребарај: #stake

当前筛选 #stake清除筛选
stake_PG

@stake_PG · Post #74 · 23.06.2024 г., 16:39

2023年1月,阿尔法·罗密欧F1车队宣布,Stake将成为他们的冠军赞助商,为期多年,车队更名为“阿尔法·罗密欧F1车队股份”。 #Stake 是一家澳大利亚-库拉索大陆的在线赌场。它由Medium Rare NV运营,拥有在线赌场许可证。这是一家全球性公司,在塞尔维亚、澳大利亚等设有办事处,在全球设有员工,提款秒到协议出款无需审核! #Stake国际站: stake.com/?c=AGnyo6qr 不限ip 充提秒到

1 BILLION 😎DOGS AT STAKE✅ 🤑DOGS is a memecoin created by the Telegram community and inspired by the iconic character Spotty, the mascot of VK. Today you will be able to take part in the promotion by completing three tasks: ✔️Join the promotion ✔️Trade DOGS with an amount of 100 USDT or more ✔️Invite your friends! 🎈 Prize pool for trading is 900,000,000 DOGS 🎈 Prize pool for invitations is 100,000,000 DOGS Deadline: September 23, 23:59 (UTC) #OKX#trade#stake#TON#DOGS

🤝 Storm Trade x EVAA x Tonstakers: a Power Strategy for Liquidity Providers How to put your $TON to work more effectively in DeFi? Three top-tier TON protocols — #StormTrade, #EVAA, and #Tonstakers — have joined forces to introduce a layered liquidity strategy that helps you boost rewards across multiple platforms simultaneously. The core idea: use the same asset across several protocols and earn rewards in each one: 🔵 EVAA 🔵 Storm Trade 🔵 Tonstakers ⚡️Aggressive Strategy: 1️⃣ Stake your $TON with @tonstakers_bot to receive $tsTON (~4% APR). 2️⃣ Supply $tsTON in EVAA — earn 2 XP for every $1 supplied. 3️⃣ Borrow $TON on EVAA — earn 5 XP for every $1 borrowed. 4️⃣ Trade the borrowed $TON on Storm Trade — earn ✖️ twice more RP per $1 in volume. ✅Moderate Strategy: Prefer lower risk? Borrowed $TON from EVAA can be deposited into the Storm Trade TON Vault to earn up to 20% APR. You’ll still receive ✖️ RP rewards. 🗓️Campaign Dates: April 15–25, until 15:00 CET 🥇😇🐸 Rewards will be distributed after the campaign ends. #Degen#DeFi#Stake#Vault#Supply

X

@PROJECT · Post #32 · 25.12.2024 г., 21:58

🚀 Grab #CDB#Tokens NOW Before They Hit $0.015 in Jan 2025! ⏳ Only a Few Days Left! #Stake, #hold, & prepare for #BIG profits with the $0.020 listing #coming in Feb 2025! 💥 Don’t Miss Out—Act #Fast! 🔗https://cloudatabox.com/register?ref_code=6515554&pos=right #CDBToken#CryptoProfits#StakeAndEarn#Cloudatabox