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

Пребарај: #gamingcommunity

当前筛选 #gamingcommunity清除筛选
Airdrop Presents 🗽

@airdrop_presents · Post #2896 · 01.05.2024 г., 15:26

🪂Greetings FROM RevivalRO! ✅️ 💲 Join us today for a free gaming experience where you can earn money! Embark on an exciting MMORPG adventure with us, available for free on your Android phones, tablets, or Windows PC. Discover rare items, cards, and treasures for your character, then sell them at profitable prices to other players in-game. 💎Presents Ratings: ⭐️⭐️⭐️⭐️⭐️ ➡️Visit RevivalRO Website 📚 How to Join? ↪️ Join us on Telegram! Click Here To JOIN Telegram ↪️ Download Telegram for PC: Download PC ↪️ Download Telegram for Android: Download Android ✏️Notes: Explore our Wiki for tips and guides: Wiki ℹ️ Join us now and ignite the adventure! ⚔️🛡#RevivalRO#MMORPG#GamingCommunity

ASUS CIS

@asus_on_russian · Post #3129 · 26.03.2025 г., 13:06

🏆 ASUS и MY.SKILL ДАРЯТ 100 БИЛЕТОВ НА КИБЕРСПОРТИВНЫЙ ТУРНИР! 🎮🔥 ASUS и MY.SKILL открывают двери на эпичный киберспортивный турнир, где вы сможете понаблюдать за топовыми игровыми баталиями и погрузиться в атмосферу профессионального гейминга — розыгрыш 100 билетов уже начался! ✅Как получить билет? ✍️ Просто напишите в комментариях «Хочу билет», и мы отправим вам регистрационную форму в личные сообщения. 💫 Погрузитесь в атмосферу профессионального киберспорта вместе с ASUS. Ждём вас на турнире! #ASUS#MYSKILL#EsportsEvent#GamingCommunity#WinWithASUS

GAMEFEST.UZ

@gamefestuz · Post #270 · 02.04.2026 г., 09:11

🎮 KATTA YANGILIK: TapNation — Game Fest 2026 markazida! Tayyor turing, geymerlar! Dunyoning eng yirik mobil o‘yin nashriyotlaridan biri bo‘lgan TapNation rasman Game Fest 2026 festivalida ishtirok etishini e’lon qiladi! 🚀 Bu shunchaki tadbir emas, bu mobil o‘yinlar olamidagi inqilobiy tajriba bo‘ladi. Biz bilan birga o‘yin sanoatining kelajagiga sho‘ng‘ing! ————————— 🎮 BIG NEWS: TapNation Takes Center Stage at Game Fest 2026! Get ready, gamers! We are thrilled to officially announce that TapNation, one of the world’s leading mobile game publishers, will be lighting up Game Fest 2026! 🚀 This isn’t just an event; it’s an immersive journey into the future of mobile gaming. Join us as we push the boundaries of innovation and dive deep into the next generation of play #TapNation#GameFest2026#MobileGaming#GamingCommunity#Gamedev#UzbekistanGaming#NewGames2026