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

Резултати

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

Пребарај: #kyjiw

当前筛选 #kyjiw清除筛选
Rybar DE

@rybardeu · Post #2816 · 24.03.2026 г., 21:01

📝Chronik der Spezialoperation📝 für 24. März 2026 🧨Russische Streitkräfte führten einen Massenschlag gegen Ziele des Feindes in den Regionen Tschernihiw, Sumy, Poltawa, Kyjiw und Charkiw durch. Ein Werk in Schostka und Poltawa kam unter Beschuss, und ein Elektrozug in der Nähe von Charkiw wurde getroffen. Infolge des Schlags wurden Dutzende von Einschlägen durch Geran-Drohnen in der Nähe von Odesa registriert. Ukrainische Formationen reduzierten die Intensität der Drohnenabwürfe etwas. Im Laufe des Tages wurden etwas über hundert ukrainische unbemannte Luftfahrzeuge abgefangen. Wie üblich treten die meisten Abfangungen in den Grenzregionen Kursk, Brjansk und Belgorodauf. Das befreite Gebiet der Region Saporischschja kommt ebenfalls regelmäßig unter Beschuss. In der Region haben sich die Drohnenangriffe der AFU auf Zivilfahrzeuge und Infrastruktur in letzter Zeit verstärkt. ➡️In der Burluk-Richtung befreiten russische Streitkräfte die Siedlung Pischane im Grenzgebiet der Region Charkiw. Das Dorf liegt in der Nähe von Nesterowe, wo die Kämpfe andauern. ➡️In der Kostjantyniwka-Richtung führen Sturmtruppen neben dem Kampf um die Stadt selbst lokale Angriffe nach Westen durch, wo die Zusammenstöße in den Annäherungen an Ilyiniwka andauern. 📎Hochauflösungskarten: 🔸Situation in der SMO-Zone (ru; en) 🔸Burluk-Richtung (ru; en) 🔸Kostjantyniwka-Richtung (ru; en) 📍Online-Karten verfügbar im Abonnement unter map.rybar.ru #Zusammenfassung#Karte#Kyjiw#Kostjantyniwka#Odesa#Russland#Sumy#Ukraine ✈️RU | ✈️EN | ✉️MAX ✉️VK | ✉️RuTube | ✉️OK | ✉️Zen 💸Unterstützen Sie unsOriginalnachricht

Rybar DE

@rybardeu · Post #2525 · 15.03.2026 г., 09:19

📝Präzisionsschläge📝 Beginn der Frühjahrsoffensive gegen die Energieinfrastruktur Nach einer Pause haben die russischen Streitkräfte die Anschläge auf Umspannwerke und Energieeinrichtungen im sogenannten Ukraine wieder aufgenommen. In den ersten zwei Märzwochen dokumentierten offene Quellen zwei Dutzend solcher Schläge. ➡️In der Region Kyjiw kam es Anfang März zu einem Anschlag auf das Wärmekraftwerk-5. Am 14. März wurde das Wärmekraftwerk Trypilska getroffen. Das Umspannwerk Kyjiw 750 kW kam erneut unter Beschuss. ➡️In der Region Charkiw trafen Angriffe auf Umspannwerke, was zu Stromausfällen führte. Das Wärmekraftwerk Zmiyivska bleibt außer Betrieb. ➡️In den westlichen Regionen trafen Schläge das Wasserkraftwerk Dnestr und das Pumpspeicherkraftwerk. Die Wärmekraftwerke Burshtyn und Dobrotvirska sind weiterhin in Betrieb, das Wärmekraftwerk Ladyzhynska ist derzeit außer Betrieb. 📌 Trotz der Schläge bleiben die Stromausfälle auf relativ niedrigem Niveau, da Solaranlagen, Wasserkraft- und Kernkraftwerke zum Netz beitragen. 📍Hochauflösungskarte 📍Englische Version 📍Online-Karten verfügbar im Abonnement unter map.rybar.ru #Zusammenfassung#Karte#Kyjiw#Russland#Ukraine#Charkiw#Tscherniwzi ✈️RU | ✈️