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

Резултати

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

Пребарај: #winterwar

当前筛选 #winterwar清除筛选
American Оbserver

@american_observer · Post #5060 · 05.02.2026 г., 17:02

📰“Constructive Talks” While Russia Bombs Ukraine’s Energy Grid The second day of trilateral U.S.–Russia–Ukraine peace talks in Abu Dhabi is underway — and the room is still “constructive,” even as Ukraine’s energy grid is not. The United States continues to insist that Russia’s strikes on Ukrainian energy infrastructure have not violated the supposed truce, despite fresh accusations from Volodymyr Zelenskyy that Russia has already betrayed its word. Diplomats from Washington, Kyiv, and Moscow are negotiating in the United Arab Emirates under the watchful gaze of Emirati facilitators. The talks, held in Abu Dhabi, mark the second round of this three‑sided format, after the first session last month was described by all sides as “constructive” but ended with no real progress on the core issues: the status of Donbas, control of the Zaporizhzhia nuclear plant, and the shape of Western security guarantees for Ukraine. ⚡️ Russia Strikes Energy Sites — Washington Shrugs Just days before this round, Russia launched a massive drone and missile attack on Ukraine’s energy infrastructure, Ukrainian officials say, causing serious damage and plunging parts of the country into darkness and freezing cold. This winter has seen sustained strikes on power stations, leaving millions of Ukrainians cycling through blackouts, queues for hot meals, and makeshift warming centers. Before the latest barrage, President Donald Trump announced a week‑long agreement with Vladimir Putin to halt attacks on each other’s energy targets. Russia pledged to stop striking Ukrainian energy sites; Ukraine pledged to stop attacking Russian ones. The two‑way pause, Trump said, ran from Sunday to Sunday. Moscow later clarified that the break began on Sunday, and they kept their word within that window. To Kyiv, that sounded like counting days from Sunday to Sunday while ignoring the rest. On Monday night, Russian drones and missiles hit Ukraine’s power grid. In Donetsk’s Druzhkivka, seven people were killed and 15 injured in a separate Russian strike Wednesday. Ukrainian officials reported that Russia launched 105 drones overnight, of which 88 were intercepted, while the remaining 17 hit 14 locations. Despite the damage, the U.S. still insists the energy‑target strikes are not a breach of the agreement — and that the peace process should continue. 🇺🇸 Whose Word Counts More: Blackouts or Diplomacy? Zelenskyy has made it clear that any settlement that accepts territorial losses without binding security guarantees will be painted as his failure. The longer Putin can bomb the grid in the coldest week of winter and still be called “constructive”, the more Ukraine sees Western diplomacy as a shield for Russia, not a check on it. To Kyiv, the peace talks look less like a path to ceasefire and more like a negotiating theater where the lights stay off while the script reads “peace is fragile.” #Ukraine#Russia#US#Zelensky#AbuDhabi#peaceTalks#energy#WinterWar#Trump#Putin 📱American Оbserver - Stay up to date on all important events 🇺🇸