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

Резултати

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

Пребарај: #skilltoearn

当前筛选 #skilltoearn清除筛选
Crypto Drop Club

@drop_cryptogo · Post #1809 · 19.05.2025 г., 12:05

🎮TapSwaphas reached a new level - beta is already online! Now skill games are available to the first users directly in Telegram. No downloads - everything is fast, convenient and already with $TAPS integration . What's in beta: • 🎮 3 play-to-skill games — it’s not clicks that matter, but real skill • 💸 Using and testing $TAPS in action • 🧩 Convenient Telegram mini-app — launch in a couple of seconds ⚠️Beta is available only to a limited number of users. If you've gained access, you're among the first to test the mechanics before the mass launch and possibly earn an advantage. 📅 Public release - already in early June. Get ready:TapSwapis a game changer. #TapSwap#CryptoGaming#SkillToEarn#Web3UA Bot link:tapswap_bot📱 Crypto Drop Club 👉 SUBSCRIBE

Crypto Drop Club

@drop_cryptogo · Post #1799 · 15.05.2025 г., 17:34

😱 Are you missing everything again? This is the last chance to get into the TapSwap beta test before it goes mainstream! We've almost assembled a select group of people - those who will be the first to see how TapSwap works from the inside. Want to go there? Then go for it! In beta: 🎯 Games where it's important not to poke, but to think 🪙 $TAPS is not a toy, but a currency 📲 Everything via Telegram — no downloads, no headaches Leave your nickname and we will find you (in a good way): 👉https://forms.gle/Wdp8ZsofBM6Xzjyk6 Bot link: tapswap_bot📱 #TapSwap#Бета#SkillToEarn#TONGaming Crypto Drop Club 👉 SUBSCRIBE

Nigeria Football Hub

@football_nigeria · Post #1083 · 15.05.2025 г., 14:19

⚠️ Final call to join the TapSwap beta! We are finalizing the formation of the early access group. If you haven't sent your Telegram nickname yet, now is the time to do it.📱 As part of the beta version you will receive: - Access to skill-based mechanics — Possibility to test $TAPS in operation — Participation directly through Telegram, without unnecessary installations 📩 Leave your nickname here so we can add you to the list: 👉https://forms.gle/Wdp8ZsofBM6Xzjyk6 Bot link: tapswap_bot📱 #TapSwap#Бета#SkillToEarn#TONGaming Nigeria Football Hub

INSIDER USA | News

@insider_usa_news · Post #3338 · 15.05.2025 г., 16:01

⚠️Last chance to get into the TapSwap beta test We are finalizing the formation of the early access group. If you haven't sent your Telegram nickname yet, now is the time to do it.📱 As part of the beta version you will receive: - Access to skill-based mechanics — Possibility to test $TAPS in operation — Participation directly through Telegram, without unnecessary installations 📩 Leave your nickname here so we can add you to the list: 👉https://forms.gle/Wdp8ZsofBM6Xzjyk6 Bot link: tapswap_bot📱 #TapSwap#Бета#SkillToEarn#TONGaming INSIDER USA 👉🏻 Subscribe