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

Пребарај: #lighting

当前筛选 #lighting清除筛选
Home decor

@dzdigital3 · Post #18899 · 21.08.2025 г., 13:02

Neon LED Strip Lights 12-24V 84LEDs/M Silicone Neon Rope Light with Music Sync RGBIC Dreamcolor Chasing Strip Tape for Room Get It By Aliexpress 👇 https://s.click.aliexpress.com/e/_EId66LY Get It By Amazon 👇 https://amzn.to/4kESCGz Our store https://temu.to/k/ueopn67ps3d #light#lightroom#lighting#homedecor#bedroomdecor

USSResearch

@ussresearch · Post #5446 · 23.11.2024 г., 09:11

🤓 Как вы наверное уже заметили, мои профессиональные интересы находятся на пересечении мировой истории дизайна и советской. Последняя - исследована гораздо меньше, и там я нахожу много материалов, требующих современного осмысления и освещения. 📚 Мне хочется, чтобы этот канал отражал разные направления моей деятельности. Поэтому я решила в качестве эксперимента сделать пятницу днём советского дизайна. Начну с темы про советские патенты. Посвящаю её горячо любимому мной каналу USSResearch. 📺 Сейчас речь пойдет про послевоенный период, т.к. после революции всё быстро и часто менялось, плюс дизайнерские (с современной точки) зрения разработки регистрировались вместе с остальными чисто инженерными изобретениями и их сложнее искать. В подтверждение - в приложении будет фото из частного семейного архива Конплянских с которыми я работю. 🔗 При этом, дизайнеры отдельные свои конструкторские разработки продолжали регистрировать как изобретения. В приложении – пример изобретательского патента уникального художника Вячеслава Фомича Колейчука (у которого мне посчастливилось учиться в институте). ™️ И про товарные знаки я сейчас тоже писать не буду, т.к. их стали регистрировать отдельно сильно раньше, чем промышленные образцы, НО без указания авторства! Просто год и название предприятия, которому теперь это знак принадлежит. Я уже почти потеряла надежду выяснить, кто сделал логотип Аэрофлота (и некоторые другие) 😢 1️⃣ Итак, первое в СССР авторское свидетельство на промышленный образец было зарегистрировано на имя завода «Эстопласт», г. Таллин, 28 августа 1965 года. 🔟 Все первые 10 свидетельств были выданы на светильники этого легендарного эстонского завода, существовавшего с 1959 по 2003 год. Сейчас многие из его моделей являются предметом коллекционирования. Если хотите от меня отдельную подборку - ставьте ✍🏻 💡Современный преемник предприятия - 4ROOM, тоже имеет ряд симпатичных рэтро-моделей. 📝 В приложении добавлю критическую статью на эти первые зарегистрированные модели из журнала «Техническая эстетика». #SovietDesign#Research#Archive#ProductDesign#Patent#Lighting

The collaboration and friendship of Steven Holl and Lobservatoire international. 1. Nancy and Rich Kinder Museum Building - Museum of Fine Arts Houston (2020) 2. Cofco Cultural and Health Center (2021) 3. Institute for Contemporary Art, Virginia Commonwealth University (2018) 4. The Reach, Kennedy Center (2019) 5. CIFI Beijing (2022) 6. Hunters Point Library (2019) #stevenhollarchitects#architecture#architect#light#lighting#lightingdesign#lobservatoireinternational#arch_shovel