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

Резултати

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

Пребарај: #lebanonunderattack

当前筛选 #lebanonunderattack清除筛选
Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3562 · 29.10.2024 г., 09:03

A map of the Israeli Airstrikes on the Lebanese Beqaa region that took the lives of 63 civilians and i jured more than 100 people in a raid of more than 100 airstrikes targeting the region. #LebanonUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3578 · 02.11.2024 г., 09:17

#Israel carried out a large-scale massacre today, November 1, 2024, in the Lebanese towns of Baalbek district. 52 people were killed, 72 wounded, and 9 remain missing after 25 airstrikes by Israeli warplanes conducted over two hours, from 2 p.m. to 4 p.m. #LebanonUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3557 · 27.10.2024 г., 18:20

Even in the darkest times of #war, humor becomes a tool for resilience, offering brief moments of relief and a way to cope with the harsh realities. It’s a reminder that laughter, no matter how fleeting, can be a powerful act of defiance and hope in the face of adversity. #LebanonUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3555 · 27.10.2024 г., 08:53

The Lebanese Ministry of Health's Emergency Operations Center reported that the death toll from the Israeli assault has climbed to 2,653, with 12,360 others wounded since October 8, 2023. This staggering rise reflects the continuous bombardment and escalating violence. #Israel#Lebanon#LebanonUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3656 · 17.11.2024 г., 18:14

Israel has struck Beirut once again, this time targeting Mar Elias Street; the heart of the capital and one of its most densely populated areas during the war, as countless displaced families from the suburbs have sought refuge there. This relentless aggression is not just an attack on civilians; it’s a blatant violation of all norms of international law, crossing every red line. #LebanonUnderAttack #BeirutUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3463 · 14.10.2024 г., 12:27

Zionist Israeli Psychopaths hit a home in Ayto town in #Zgharta north #Lebanon that was housing families displaced from South Lebanon and Beirut suburbs. 25 humans in the house, the Red cross so far said that 18 are martyred. I will not share any videos or photos, as many of the women might be hijabis, and the footage shows them in heartbreaking scenes without their hijabs. #LebanonUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3657 · 18.11.2024 г., 08:45

Devastation in the heart of Beirut: On the night of November 17, #Israel targeted a densely populated building on the famous Mar Elias Street, setting off a massive fire that raged through the night. The building housed motor generators and an electronics shop, where lithium batteries likely fueled the inferno, adding to the chaos and destruction. #LebanonUnderAttack#WarCrimes#Beirut

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #4023 · 18.02.2025 г., 13:17

Ophthalmologist MP Elias Jradeh reveals that a blockade was imposed on Lebanon regarding the import of corneas after the Pagers bombing, which led to their disappearance from the local market and harmed various Lebanese citizens. #Lebanon#PagersAttack#Hezbollah#LebanonUnderAttack

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3586 · 04.11.2024 г., 17:01

In a heartbreaking video, Julia shared moments while she was playing the piano in her home in Khiam, South Lebanon, which she discovered in a video circulated by Israeli soldiers that was destroyed during the border clashes when they were attempting to occupy her town. #SouthLebanon#Khiam#LebanonUnderAttack#Israel

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