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

Резултати

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

Пребарај: #stl

当前筛选 #stl清除筛选
IK Design©

@ikdesignuz · Post #184 · 29.03.2020 г., 16:32

#stl#elon 🇺🇿Respublika 🌈 "Kamalak" bolalar tashkilotining sahifasiga tayyorlangan "STL" guruhining e'loni uchun dizayn. 🚀T.me/ik_design

Hashtags

В мире моды произошел неожиданный поворот: компания STL приобрела французский дом моды Christian Lacroix. 📍Christian Lacroix, основанный в 1987 году, известен своими роскошными и экстравагантными дизайнами, которые оставили неизгладимый след в истории моды. 📍Компания STL, ранее не фигурировавшая в заголовках модных изданий, теперь владеет одним из самых знаковых брендов индустрии. 📍Что это означает для будущего Christian Lacroix? Будет ли сохранено наследие бренда, или нас ждут радикальные изменения? 📍Время покажет, но одно ясно: мир моды всегда полон сюрпризов. 🦉 Редакция ФК Эвелины Хромченко #ЭвелинаХромченко#ChristianLacroix#STL#модныеновости

Daily Channels

@dailychannels · Post #6054 · 08.05.2025 г., 01:00

Channel: DC Comics | STL 3D Print Models Miniatures Members: ~11.89K 💢 Username: @dc_stl Description: all chanels : t.me/addlist/AKCBHdY4zShlZTVi Superman Batman Wonder Woman The Flash Green Lantern Aquaman Cyborg Justice League DC Comics Gotham City Metropolis Darkseid Joker Harley Quinn Lex Luthor 🏷 Tags: #utilities_tools #comics#stl#print https://telegramchannels.me/channels/dc_stl

Daily Channels

@dailychannels · Post #6672 · 10.02.2026 г., 01:00

Channel: Chibi Funko Kids Toys Play Fun | 3D STL Models Miniatures Print Members: ~13.02K 💢 Username: @kids_stl Description: all chanels : t.me/addlist/AKCBHdY4zSh Toy models Character figurines Cartoon characters Animal models Action figures Playsets Dollhouse accessories Cartoon animals Cute characters Fantasy creatures Fairy tale characters Superheroes Princesses Robots 🏷 Tags: #utilities_tools #print#stl#kids#chibi https://telegramchannels.me/channels/kids_stl

Daily Channels

@dailychannels · Post #6503 · 23.11.2025 г., 13:00

Channel: Pokemon | STL 3D Print Models Miniatures Members: ~14.1K 💢 Username: @stl_pokemon Description: all chanels : t.me/addlist/AKCBHdY4zShlZTVi Pikachu Charizard Bulbasaur Squirtle Jigglypuff Mewtwo Eevee Snorlax Pokeball Gyarados Team Rocket Gengar 🏷 Tags: #utilities_tools #pokemon#stl#print#pikachu https://telegramchannels.me/channels/stl_pokemon

Daily Channels

@dailychannels · Post #6213 · 17.07.2025 г., 01:00

Channel: Vehicles Cars Planes Ships Military | 3D STL Models Miniatures Print Members: ~13.36K 💢 Username: @vehicles_stl Description: all STL : t.me/addlist/AKCBHdY4zShlZTVi Car models Aircraft models Ship models Tank models STL files 3D printing Scale models Vehicle accessories Classic cars Fighter jets Battleships Armored vehicles Military vehicles Vintage planes Racing Helicopters 🏷 Tags: #auto_moto #stl#print#cars#planes https://telegramchannels.me/channels/vehicles_stl

GitHub Trends

@githubtrending · Post #14774 · 01.06.2025 г., 12:00

#cplusplus#3mf#android#asset_pipeline#assets#assimp#c_plus_plus#collada#dae#fbx#fbx_exporter#game_development#gamedev_tool#gamedevelopment#gltf#gltf2#ifc#patreon#python#stl The Open Asset Import Library (Assimp) is a tool that helps load many different 3D file formats into a common format. It supports over 40 formats for importing and several for exporting. Assimp works on various platforms like Windows, macOS, Linux, Android, and iOS. It also provides tools to improve the 3D models, such as fixing errors and making them look better. This library is useful for developers because it simplifies working with different 3D file types, making it easier to create and manage 3D content across different systems. https://github.com/assimp/assimp