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

Резултати

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

Пребарај: #spazio

当前筛选 #spazio清除筛选
White House Watch

@WhiteHouseWatch · Post #18640 · 11.04.2026 г., 00:11

#Spazio: La prossima ed ultima fase della missione sarà il recupero degli astronauti, dei dati e della navicella. Dopodiché Artemis II potrà dirsi completata con un successo smagliante.

Hashtags

White House Watch

@WhiteHouseWatch · Post #18631 · 10.04.2026 г., 18:54

#Spazio: Nuova (e ultima) immagine giornaliera dalla missione Artemis II, chiamata "New Perspective of Home" con la Terra e la Luna allineate parzialmente illuminate dal Sole.

Hashtags

White House Watch

@WhiteHouseWatch · Post #18617 · 09.04.2026 г., 20:53

#Spazio: Foto giornaliera dalla missione Artemis 2, con questa immagine della Via Lattea, la nostra galassia, immortalata dall'equipaggio.

Hashtags

White House Watch

@WhiteHouseWatch · Post #18603 · 08.04.2026 г., 17:26

#Spazio: Foto giornaliera dalla missione Artemis II, chiamata "Solar Eclipse of the Hearth". La Luna, qui ripresa controluce dal Sole durante un'eclissi solare del 6 aprile 2026, è fotografata da una delle telecamere poste sulle ali dei pannelli solari della navicella spaziale Orion. Orion è visibile in primo piano a sinistra.

Hashtags

White House Watch

@WhiteHouseWatch · Post #18550 · 07.04.2026 г., 13:48

#Spazio: Foto fantastica dalla Missione Artemis II, chiamata "Earthset", che immortala questo tramonto terrestre il 6 aprile 2026, durante il volo intorno alla Luna. L'immagine fa riferimento all'iconica alba terrestre ("Earthrise") scattata dall'astronauta Bill Anders 58 anni prima, durante il volo intorno alla Luna dell'equipaggio dell'Apollo 8.

Hashtags

White House Watch

@WhiteHouseWatch · Post #18545 · 07.04.2026 г., 12:50

#Spazio: Foto dell'eclissi lunare di sole, la prima mai vista da occhio umano, scattata dagli astronauti della missione Artemis II dalla navicella Orion.

Hashtags

White House Watch

@WhiteHouseWatch · Post #18536 · 06.04.2026 г., 22:45

#Spazio: La Missione Artemis II é ora in transito dietro il lato nascosto della Luna, con il segnale che sarà perso per circa 40 minuti durante i quali gli astronauti saranno irraggiungibili e dovranno svolgere in autonomia operazioni e rilevazioni scientifiche. In questo momento sono totalmente isolati da comunicazioni da e verso la Terra.

Hashtags

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