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

Резултати

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

Пребарај: #pop

当前筛选 #pop清除筛选
音乐小本本

@PaulsNote · Post #937 · 30.10.2023 г., 03:43

原神BGM - 枫丹 真正的安眠处 水仙的安任务结尾处bgm,想在游戏中再次听到只能卡bug了。 后面的四重奏写的很有水平!希望Hoyo-mix可以写更多室内乐! 附:官方稿: 此次枫丹的音乐设计,在配器选择上运用了曼托林、鲁特琴、维奥尔琴等经典的欧洲乐器;为了增添浪漫气息,还增加了体现都市时尚感的爵士元素、颇具戏剧感的华尔兹元素以及雍容华丽的巴洛克元素。据HOYO-MiX(米哈游旗下游戏音乐创作团队)成员介绍,主创团队基于枫丹整体泛欧洲的风格基调,参考文艺复兴至浪漫主义时期的德奥音乐风格,也包含了圣桑、加布里埃尔·弗雷、莫里斯·拉威尔这一谱系的法国音乐风格。 #Pop https://youtu.be/N7wowNflnu4?si=OcXLnYe-0EmCXMts

Hashtags

Mirracoin Новости

@MirraChannel · Post #125 · 15.05.2024 г., 10:58

#крипто#база#PoP Что такое Proof of Personhood? Алгоритм консенсуса - Proof of Personhood («доказательство личности» или кратко PoP). Использует механизмы подтверждения «человечности» (personhood) и уникальности индивидуума, гарантируя, что каждый участник проекта получит равный голос и долю вознаграждения. 🤔Зачем это нужно? Метод получил распространение из-за угроз недобросовестного использования технологии дипфейк и по причине того, что злоумышленники создают множество поддельных аккаунтов для манипулирования голосованием или распределением наград. 🔥 PoP обеспечивает естественное ограничение скорости за счет верификации учетной записи, что, по сути, исключает возможность проведения атаки Сивиллы в заметных масштабах и позволяет фильтровать контент, что помогает бороться с вирусным распространением дезинформации, генерируемой ИИ. 😎Примеры проектов использующих технологию PoP: 📌Gitcoin Passport - проект собирает «марки» с аутентификаторов Web2 и Web3, служащие учетными данными для кроссплатформенной проверки личности без разглашения приватной информации. 📌Proof of Humanity - проект объединяет сети доверия с обратными тестами Тьюринга, реализует разрешение споров и создает список подтвержденных пользователей. 📌BrightID - проводит «верификационные вечеринки» по видеосвязи для взаимной верификации через систему Bitu, требующую, чтобы за человека поручилось достаточное количество верифицированных пользователей. 📌World ID проекта Worldcoin - открытый протокол идентификации, не требующий разрешения, который анонимно проверяет личность человека, используя доказательства нулевого знания. @MirraChannel😎

ПретходнаСтраница 1 од 4Следна