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

Пребарај: #humanitariancrisis

当前筛选 #humanitariancrisis清除筛选
BadVolf

@badvolfnews · Post #1299 · 04.12.2023 г., 12:25

🔴 BREAKING NEWS 🔴 Israeli bombardment of Nuseirat refugee camp in Gaza claims lives of 14 innocent people, including women and children. More casualties expected as rescue efforts continue. Despite ceasefire, Israel accuses Palestinians of violating agreement, escalating tensions. 110 hostages released, but 137 still held by Hamas. #GazaUnderAttack#HumanitarianCrisis https://ria.ru/20231203/gaza-1913406714.html Subscribe to @BadVolfNews

BadVolf

@badvolfnews · Post #1294 · 04.12.2023 г., 07:25

🔴Catastrophic situation at Indonesian Hospital in northern Gaza‼️ Israeli tanks surround the facility after artillery fire kills 12 Palestinians💔 700 people trapped inside, including medical staff and wounded😰 Hospital denies presence of armed militants🚫 International condemnation mounts🌍 UN reports collapse of services in northern Gaza hospitals🏥 Israel claims Hamas built infrastructure below hospitals for military use💣 Terrifying sounds of explosions and gunfire😨 Death toll rises as Israel's offensive continues🔥 Stay tuned for updates! #GazaUnderAttack#HumanitarianCrisis https://www.aljazeera.com/news/2023/11/20/israeli-tanks-surround-gazas-indonesian-hospital-after-killing-12-people Subscribe to @BadVolfNews

BadVolf

@badvolfnews · Post #1147 · 20.10.2023 г., 06:25

🚨 Urgent Update: Gaza Humanitarian Crisis 🚨 WHO warns of a "death sentence" for vulnerable hospital patients in Gaza due to Israel's evacuation order. Moving them within 24 hours is impossible and inhumane. UN calls it "impossible" and EU diplomat calls it "utterly unrealistic". Hospitals are at breaking point, with limited electricity and critical shortages. Time is running out to prevent a catastrophe. Urgent delivery of supplies and a humanitarian corridor needed. #SaveGaza#HumanitarianCrisis https://www.aljazeera.com/news/2023/10/13/israels-evacuation-order-for-gaza-death-sentence-for-patients-who-says Subscribe to @BadVolfNews

BadVolf

@badvolfnews · Post #1253 · 10.11.2023 г., 22:25

🔴 ANALYSIS: Temporary ceasefire in Gaza raises doubts about Israel's intentions. Hospitals targeted despite announced pauses. Gaza facing water and fuel shortages, deepening humanitarian crisis. Unilateral pause lacks commitment from both sides. Pauses not a solution, a ceasefire needed instead. US pushing for pause to support Israel's actions. Biden under pressure to call for ceasefire. Growing tensions between Washington and Tel Aviv. Palestinians left with difficult choices. Uncertainty remains on effectiveness of humanitarian pause. #GazaConflict#HumanitarianCrisis https://www.aljazeera.com/features/2023/11/10/will-israels-humanitarian-pauses-mean-much-for-gaza-no-say-experts Subscribe to @BadVolfNews