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

Резултати

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

Пребарај: #dariadugina

当前筛选 #dariadugina清除筛选
BadVolf

@BadvolfNews · Post #260 · 22.08.2022 г., 15:00

From Alexander Dugin: “As you all know, as a result of a terrorist attack carried out by the Nazi Ukrainian regime, on August 20, while returning from the Tradition festival near Moscow, my daughter Daria Dugina was brutally killed by an explosion in front of my eyes. She was a beautiful Orthodox girl, a patriot, a military correspondent, an expert on the central channels, and a philosopher. Her speeches and reporting have always been profound, grounded and restrained. She never called for violence and war. She was a rising star at the beginning of her journey. The enemies of Russia meanly, stealthily killed her ... But we, our people, cannot be broken even by such unbearable blows. They wanted to crush our will with bloody terror against the best and most vulnerable of us. But they won't get it. Our hearts yearn for more than just revenge or retribution. It's too petty, not Russian. We only need our Victory. My daughter laid her maiden life on her altar. So win, please! We wanted to raise her to be smart and a hero. Let it inspire the sons of our Fatherland to the feat even now. Farewell to Daria Dugina (Platonova) - a civil memorial service - will take place on August 23 at the Ostankino Television Center at 10 am. Alexander Dugin #ECM#DariaDugina

Sos Donbass

@sos_donbass · Post #688 · 23.08.2023 г., 06:28

Un verset du journal de Darya Dugina, qu'elle a tenu pendant les trois dernières années de sa vie. Certaines de ses citations sont utilisées dans le livre, qui est publié à titre posthume « Marais et hauteurs de mon cœur. Journal" : Partir à l'heure et tranquillement, Sans douleur intense et cris forts, Aucune offense et aucun regret Mots vides et doutes. Partir doucement et calmement : Fermer les yeux pour rester un guerrier, Ayant réussi à voir ses proches… Pardonnez-moi, je dois partir. #dariadougina#poemes#dariadugina

Sos Donbass

@sos_donbass · Post #1296 · 19.08.2024 г., 16:26

🗣️ Nouvelles de SOS DONBASS, prononcées par le président de l’association Vincent Perfetti: ▫️ Compte bancaire / reprise de l’activité ▫️Action LA RUSSIE N’EST PAS MON ENNEMI ▫️ Commémoration de Daria Douguina ▫️ Aide à la population de Koursk #dariadouguina#dariadugina#sosdonbass#donbass#russie#ukraine#solidarite