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

Пребарај: #jive

当前筛选 #jive清除筛选

Наконец-то лето вернулось в Москву 😅☀️ Это отличный повод для уличных танцев!💃💃 #люблютанцевать#танцы#танцор#danceблогер#jive#джайв#бальныетанцы#dance#dancer#ilovedance

Друзья, много танцев не бывает!😉 Просили - получите! Новый танцевальное видео с новым танцевальным дуэтом!💃🕺🏼🔥 Кстати, приготовила для вас много новых танцевальных видео.😉 Жду ваши сердечек и комментарии!🫶 Чем больше реакций соберем, тем чаще будем вас радовать совместными танцами.❤️ #dance#dancer#trending#танцы#dancetrends#бальныетанцы#джайв#jive#танцевальныйтренд#цветтанцакрасный#тренд#danceблогер#danceblogger#танцевальныйдуэт

Когда вайб один, а стиль разный!🔥 Исполнили с Ольгой для вас танец джайв. На кого смотрели?😉 #пятница#танцы#танцевальныйтренд#джайв#танец#танцор#dance#dancer#dancing#dancingtrends#jive#friday

Друзья, с пятницей!🎉 Желаю Вам отличных выходных!🫶 И конечно же хочу Вас порадовать новой порцией танцев. Сегодня исполняем джайв!💃🕺🏼 Присоединяйтесь и танцуйте вместе на нами!❤️ #dance#dancer#trending#танцы#dancetrends#бальныетанцы#джайв#jive#ballroomdancing#танцевальныйтренд#цветтанцакрасный#тренд#danceблогер#danceblogger#танцевальныйдуэт

С 1 апреля! ☺️❤️ 1 апреля - это не только Международный День Смеха, который отмечается во многих странах!😀 А ещё и день рождения 1 канала, любимый телеканал отмечает 30-летний юбилей, с чем я его от души поздравляю!🎉 А ещё 1 апреля 2025 года знаменателем тем, что растущая Луна переходит в знак Близнецов - время ярких идей и легкого общения. Люди становятся более открытыми, любопытными и подвижными. Захочется много общаться, узнавать новое и пробовать необычное. Именно в этот период легко завязываются знакомства и появляются интересные идеи. Кстати, творческим людям стоит поймать волну вдохновения: эксперименты, новые проекты или смелые задумки могут неожиданно принести успех. Также можно заняться поиском новых хобби или записаться на курсы, лекции, мастер-классы и конечно же кто хотел начать танцевать, то это самое подходящее время! Дорогие друзья, давайте отложим дела и станцуем вместе прямо сейчас!💃🕺🏼🥰 #1апреля#деньсмеха#1канал#dance#dancer#trending#танцы#dancetrends#bachata#tiktoktrend#tiktoktrends#танцевальныйтренд#цветтанцакрасный#тренд#danceблогер#danceblogger#jive#джайв

Когда пригласил девушку на танец.. 💃🕺 P.S.: У «Коляна» пасадобль получился зачётный!💪 #dance#dancer#trending#танцы#dancetrends#trends#танцевальныйтренд#джайв#jive#бальныетанцы#pasadoble#цветтанцакрасный#тренд#тренды#danceблогер#danceblogger#танцевальныйдуэт#реальныепацаны#колян#танецколяна#пасадобль