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

Резултати

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

Пребарај: #cryptostaking

当前筛选 #cryptostaking清除筛选
TON Crypto News

@toncoin_rap · Post #189 · 10.10.2024 г., 16:47

🎧⤴ 💎Crypto Bot Unleashes Launchpool Testing: Earn Rewards by Staking USDT! Crypto Bot has introduced a new Launchpool feature, allowing users to earn JET tokens by staking USDT. This test phase aims to refine the user experience by evaluating staking and withdrawal processes, reward distribution with JET, and user interface usability. Participants access the test pool through the bot’s mini-app on Telegram. This launch follows a broader trend in crypto, where platforms incentivize user engagement through staking to earn rewards without initial purchase commitments. ► Full News (Expand) Chorus Stackin’ coins, USDT in the pool, JET rewards flowin’, Crypto Bot’s cool. Launchpool vibes, we stakin’ to win, New tokens rollin’, let the journey begin. Verse 1 Crypto Bot, bringin' us the launch, USDT staked, rewards on the branch. Token JET droppin' with each day’s pass, Crypto fam earnin’, makin' that cash. Interface smooth, easy to track, Stakin’ it in, gettin' paid back. No buyin' needed, rewards on lock, Crypto Bot’s here, givin' us stock. Chorus Stackin’ coins, USDT in the pool, JET rewards flowin’, Crypto Bot’s cool. Launchpool vibes, we stakin’ to win, New tokens rollin’, let the journey begin. Verse 2 Testing the flow, checkin’ the scene, Balances updated, all lookin' clean. Stake, unstake, smooth as it goes, Crypto fam climbin', rakin' in those. JET rewards buildin', the future’s set, Crypto Bot’s tech, we ain’t seen it yet. Step in the pool, earnin' with ease, Passive income, like a crypto breeze. Chorus Stackin’ coins, USDT in the pool, JET rewards flowin’, Crypto Bot’s cool. Launchpool vibes, we stakin’ to win, New tokens rollin’, let the journey begin. Verse 3 Telegram app, head to the pool, Crypto rewards, makin’ it cool. Stake your USDT, sit back and see, JET in your wallet, rewards all free. Launchpool testin’, ready to show, Crypto Bot’s here, makin' it flow. Stake on the app, follow the path, Crypto rewards, doin' the math. Chorus Stackin’ coins, USDT in the pool, JET rewards flowin’, Crypto Bot’s cool. Launchpool vibes, we stakin’ to win, New tokens rollin’, let the journey begin. Bridge Crypto’s the future, stackin' our way, Rewards comin’ daily, pave the pay. Launchpool test, stakin’ with pride, Crypto Bot fam, take the ride. #CryptoStaking #TONCryptoNewsRapStyle 🎧@toncoin_rap