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

Резултати

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

Пребарај: #mediastart

当前筛选 #mediastart清除筛选

💻 Сегодня участники Summer MediaCamp-2025 погрузились в мир идей и технологий! 🧠 Тренер Эмиль Фахреев провёл мастер-класс по креативному мышлению. Участники узнали, как находить нестандартные решения, делать креативные посты, проводить брейнштормы и превращать даже самые смелые идеи в работающие концепции. 🔐 Кроме того, Эмиль ежедневно ведёт сессии по кибербезопасности: здесь молодёжь учится защищать свои аккаунты, распознавать онлайн-угрозы и работать в сети безопасно. 🤖 А ещё — его занятия по искусственному интеллекту. Участники знакомятся с тем, как правильно писать промты для ChatGPT, а также пробуют разные AI-инструменты: 🎵 Suno для генерации музыки 🎬 Sora для видео 🛠 Google AI Studio для экспериментов с моделями 💡 Gemini для поиска идей и решений …и многие другие. Всё это помогает творческой молодёжи создавать контент будущего и быть на шаг впереди в цифровой реальности. 👀 Следите за нашими обновлениями — впереди ещё больше идей, знаний и открытий! ☀️ Мероприятие финансируется ННО "Центр развития современной журналистики" совместно с Агентством по делам молодёжи Узбекистана при поддержке проекта "ЕU Tabassum". 😀 Проект EU Tabassum (Smile) реализуется DW Akademie совместно с Центром развития современной журналистики (MJDC) при финансовой поддержке Европейского Союза (EU) и софинансировании Федерального министерства экономического сотрудничества и развития Германии (BMZ). #SummerMediaCamp2025#MediaStart#OylaTekshir

💻 Bugun Summer MediaCamp-2025 ishtirokchilari g‘oyalar va texnologiyalar olamiga sho‘ng‘ishdi! 🧠 Trener Emil Fakhreev kreativ fikrlash bo‘yicha mahorat darsini o‘tkazdi. Ishtirokchilar noodatiy yechimlarni topish, kreativ postlar yaratish, brainstorming (fikrlar hujumi) o‘tkazish va hatto eng jasur g‘oyalarni ham ishlaydigan konsepsiyalarga aylantirishni o‘rgandilar. 🔐 Bundan tashqari, Emil har kuni kiberxavfsizlik bo‘yicha mashg‘ulotlar olib boradi: bu yerda yoshlar akkauntlarini himoya qilishni, onlayn tahdidlarni aniqlashni va tarmoqda xavfsiz ishlashni o‘rganmoqda. 🤖 Yana — uning sun’iy intellekt bo‘yicha mashg‘ulotlari ham qiziqarlidir. Ishtirokchilar treninglarda ChatGPT uchun to‘g‘ri promptlar yozishni, shuningdek, turli SI vositalarini sinab ko‘rishmoqda: 🎵 Suno'da — musiqa yaratish uchun 🎬 Sora'ning — video uchun qulayligi 🛠 Google SI Studio'ning — modellarda tajribalar o‘tkazish uchun ekani 💡 Gemini esa — g‘oyalar va yechimlar izlash uchunligi …va yana ko‘plab boshqa vositalar. Bularning barchasi ijodkor yoshlar uchun kelajak kontentini yaratishda va raqamli haqiqatda bir qadam oldinda bo‘lishlariga yordam bermoqda. 👀Yangiliklarimizni kuzatib boring — oldinda yanada ko‘proq g‘oyalar, bilimlar va kashfiyotlar kutmoqda! ☀️ Tadbir "Zamonaviy jurnalistikani rivojlantirish markazi" nodavlat notijorat tashkiloti tomonidan O‘zbekiston Yoshlar ishlari agentligi bilan hamkorlikda "EU Tabassum" loyihasi ko‘magida moliyalashtirilmoqda. 😀 "Yevropa Ittifoqi Tabassum: O‘zbekistonda gender tengligini targ‘ib qilish va yosh ayollarning imkoniyatlarini kengaytirish uchun media qobiliyatlari" loyihasi DW Akademie tomonidan Zamonaviy jurnalistikani rivojlantirish markazi (MJDC) bilan hamkorlikda amalga oshirilmoqda, Yevropa Ittifoqi tomonidan moliyalashtirilmoqda va Germaniya Iqtisodiy hamkorlik va taraqqiyot federal vazirligi (BMZ) tomonidan qo‘llab-quvvatlanmoqda. #SummerMediaCamp2025#MediaStart#OylaTekshir