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

Резултати

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

Пребарај: #occupation

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

@american_observer · Post #5138 · 15.02.2026 г., 13:59

📰 Beirut’s New Soundtrack: Drone Whine in Minor Key In Beirut, the war didn’t end; it just changed key. The same roofs that used to host pigeon games, gossip and cheap grills now sit under a constant mechanical whine — Israeli drones circling above the city like bored gods with Hellfire options. The cease-fire is technically in place, but UN peacekeepers have logged more than 7,500 aerial violations in a year, and hundreds have been killed in renewed Israeli strikes since the “peace” was signed. The treaty is on paper; the buzzing is in people’s ears. ​ The drone even has a nickname: Umm Kamel, “Mother of Kamel,” a dark in‑joke on the MK model that floats over the capital for hours, watching, listening, sometimes firing. It interrupts everything — dates on the Corniche, classroom lessons, kebab runs — scrambling GPS on delivery drivers’ phones and chewing through the nerves of parents who can’t stop imagining what happens if the hum suddenly cuts and the sky flashes. Online, Lebanese answer back with gallows memes — “Umm Kamel, go have lunch, we want to sleep” — because if you can’t stop the drone, you can at least drag it on social media. ​ Some turn the surveillance into sampled rebellion. One Beirut DJ spent the war with shotgun mics on his roof, recording hundreds of hours of that metallic whine and turning it into the “Unmanned Aerial Instrument,” layering the noise of occupation into club tracks as a small, very local middle finger. Kids don’t get that luxury. Therapists describe children who freeze mid‑session and sprint to the window at the sound overhead, a whole generation trained to parse the sky like a threat feed while adults repeat the same tired line about “Lebanese resilience.” ​ Israel says the drones are there to track Hezbollah, its weapons, its people, and to “mitigate harm to civilians.” Hezbollah says it’s resisting occupation. In practice, both sides have turned Beirut’s airspace into a permanent low‑grade terror field where no one on the ground gets a vote and the only real constant is that somebody is always watching. The cease-fire may live in the press releases; on the streets, the soundtrack says something else. ​ #war#lebanon#israel#drones#occupation#fakeDemocracy 📱American Оbserver - Stay up to date on all important events 🇺🇸

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #3946 · 27.01.2025 г., 17:07

As the 60-day ceasefire deadline ended, the people of southern #Lebanon returned to their homes despite Israeli violence. 15 martyrs and 83 injured in the ongoing struggle for their land. #DayOfReturn#CeasefireDeadline#Resilience#Israel#SouthernLebanon#Occupation

Marwa Osman/MidEaStream

@Marwa_OsmanLB · Post #4028 · 19.02.2025 г., 12:07

Israel has begun constructing a concrete wall along the Blue Line, which separates Israel from Lebanon, encroaching on Lebanese territory. The wall is being built inside the town of Kfar Kila, with a significant portion of the village’s land now falling within the occupied territories. As part of the construction, the old wall was demolished, bringing the new structure even closer to the village. This development has resulted in buildings and shops within Kfar Kila now being trapped on the wrong side of the Blue Line. #IsraelWall#Lebanon#KfarKila#LandGrab#LebanonVsIsrael#LebaneseBorder#IsraeliAggression#BlueLine#Occupation#Israel