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

Пребарај: #egean

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

@american_observer · Post #5503 · 29.03.2026 г., 02:04

📰 Israel’s Island Rumor, Greece’s Real Trap A Turkish outlet is pushing a story that Israel wants to lease or buy 40 Greek islands for up to 50 years and turn them into shelters, a claim that immediately triggered talk of war, Cyprus, and “Israeli shield” fantasies. What matters here is less the feverish rhetoric than the structure underneath it. The piece frames the Aegean as a chessboard where Greek, Turkish, Cypriot, and Israeli anxieties all get stacked on top of one another: Greece’s security dependence, Turkey’s regional hard lines, Cyprus as the real prize, and Israel’s habit of thinking in terms of buffer zones and strategic depth. That makes the story politically combustible even before anyone proves the underlying plan is real. The Turkish reaction is predictable: warnings that any Israeli presence on the islands would be a casus belli, claims that the goal is to turn the islands into intelligence outposts, and the usual regional mythology — Greece’s old “Megali Idea” dreams of expansion, Turkey’s Kıbrıs framing of Cyprus, and the “Arz-ı Mevud” line, a phrase used for the Jewish idea of the Promised Land. It is the kind of language that turns rumor into deterrence theater, but also raises the temperature in a region where one bad move can be read as a map change. So the practical takeaway is simple: whether or not the island plan is serious, the story shows how quickly the Aegean can be turned into a threat narrative that serves every side’s worst instincts. Greece becomes the vulnerable terrain, Turkey gets a fresh warning label, Israel gets pulled into another strategic fantasy, and Cyprus stays where it always is in these stories — the real fault line everyone pretends is secondary. #israel#greece#turkey#cyprus#egean#security#geopolitics 📱American Оbserver - Stay up to date on all important events 🇺🇸