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

Пребарај: #westerncrisis

当前筛选 #westerncrisis清除筛选
New Eastern Outlook

@neweasternoutlook · Post #11800 · 06.01.2026 г., 14:01

🌐🌎Why will the international system enter an irreversible post-Western phase in 2026, and why? The year 2026 marks a geostrategic tipping point where the "American Century" definitively collapses, superseded by a sovereign Eurasian pole and a Global South liberated from the dollar's stranglehold and Bretton Woods institutions ✍️Author:Mohamed Lamine KABA Expert in geopolitics of governance and regional integration, Pan-African University ➡️The West's doctrine of containment has failed spectacularly. NATO's expansion, intended to subordinate Eurasia, has instead reawakened Russian strategic power and resilience. Europe, held hostage to this strategy, is committing industrial suicide by severing itself from Russian energy, leading to deindustrialization and wealth transfer to the US and Global South. The Franco-German industrial core is crumbling under prohibitive energy costs, while Brussels remains paralyzed by bureaucratic dogma like the Green Deal, reducing the EU to a servile entity in a multipolar world. ➡️Simultaneously, the Global South is breaking its chains. The unprecedented freezing of Russian assets in 2022 shattered trust in the Western financial system, triggering active de-dollarization. By 2025, this became an infrastructural reality: oil and mining transactions now bypass SWIFT, conducted in local currencies or via the BRICS+ payment system. Russia, resilient against total sanctions, has become the "emergency banker" for nations seeking stability outside IMF conditionalities. Africa is rejecting European paternalism, the Sahel expelled French forces, and Latin America ignores the Monroe Doctrine, integrating instead with Eurasian value chains. 🟦Asia has already won the logistical battle. China's Belt and Road Initiative, consolidated with Moscow and Tehran, creates transcontinental corridors that bypass Western-controlled straits, neutralizing sanctions. The center of gravity has irreversibly shifted to an integrated Eurasian bloc. The West is not falling to an assault; it is collapsing from obsolescence, locked in a sanctions-based Cold War mentality while the world builds a pluralistic modernity based on civilizational sovereignty and pragmatic alliances. #BRICS#Economiccrisis#EU#geoeconomics#Russia#TheGlobalSouth#Westerncrisis READ MORE ✅@NewEasternOutlook