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

Резултати

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

Пребарај: #sidekick

当前筛选 #sidekick清除筛选
시팡이 공부방~~❤️

@sipangE · Post #18570 · 08.09.2025 г., 13:26

형님들 요즘 그런만 들어보셨어요? 요즘 바이낸스는 밈코인이 간다? 밈코인 거래가 졸업을 위한 두걸음! 졸업하고 싶으면 밈코인 거래를 해야한다? 하지만.. 너무 위험하고 무서운 밈코인 시장이죠, 하나 잘못사면 러그풀나오고.. 수수료는 수수료대로 나가고.. DEX 사용하고 싶은곳에서 인터페이스 사용하고, 수수료는 고대로다가 페이백 되는 AI 신개념 슈퍼 울트라 짱이 있다? #DELYSIUM#델리시움 의 합작! $AGI가 전신으로 있는 SIP 프로젝트 관련 소개 방송 지금 시작합니다!! #SIDEKICK 10시 40분 방송 시작합니다. SIP 트레이딩 거래링크: LINK SIDEKICK 방송링크: LINK

Ramadan Crypton

@RamadanCrypton · Post #2744 · 30.01.2025 г., 16:59

#активности#STORY#TABI Апдейты по активностям в проектах: 1. Помните Tabi Chain в котором мы фармили перья феникса и меняли их на токены GG? Сейчас проект анонсировал сжигание этих токенов GG для получения дропа. Также не забываем выполнять задания и подключать кошельки в их тапалке TabiZoo, если тапали раннее её. Что делать: - переходим на кран и получаем тестовые токены Tabi для оплаты комиссий; - сжигаем токены здесь; Дедлайн: 24 февраля. Отношение к проекту негативное, во всех своих активностях занимается баблосбором, но хочется уже добить активность... 2. Минтим памятную NFT в Story и забираем роли в дискорде. Что делать: - проверяем бейджи, если минтили их; - минтим здесь памятную NFT; - здесь подключаем кошелёк и получаем роли; - заходим в дискорд и проверяем роли. Дедлайн: 3 февраля 3. Проверяем апдейты в тапалках. Могли появиться новые задания или возможность подключения кошелька. Искать по тегам #SIDEKICK#LIVEART#TOWER#PINAI,

Airdrop Center

@centralchanel · Post #15821 · 04.01.2025 г., 20:20

January Listing 🔥 ✅#Nodepay: 6 January ✅#MomoAi: 6 January ✅#Xterio: 8 January ✅#Sidekick : 8 January ✅ $Vertus :13 January ✅#Seed : 15 January ✅#Xcoin : 20 January ✅#Tapswap : 23 January ✅#Wcoin : 25 January ✅#CommunityGaming : 28 January Unofficial Listing ✅#PAWS ✅#UXUY ✅#Yuligo ✅#MemeWar ✅#DuckChain ✅#Celia Stay connected