Установить свойства виджета в 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
News: #Ethiopia seeks continued World Bank support following talks on economic reforms
Ethiopia has called for continued financial and technical support from the #World_Bank as it advances its macroeconomic reform agenda, the Ministry of Finance said.
The discussions took place on 26 January 2026 between Finance Minister Ahmed Shide and Wencai Zhang, Managing Director and Chief Administrative Officer of the World Bank.
According to a statement from the Ministry, Minister Ahmed briefed Zhang on the government’s ongoing reform program, which aims to transition Ethiopia toward a private-sector-led economy.
He also outlined plans to diversify growth, boost the digital economy and tourism sectors, and enhance regional integration through the African Continental Free Trade Area (#AfCFTA) and improved connectivity with neighbouring countries.
The statement quoted Ahmed as expressing ....
https://www.facebook.com/AddisstandardEng/posts/pfbid02zRQvxVfVAn3RXtT1wcyNsye2ejFXN4pyb5J5pCSKpomHLprkQG5Jax8VpymGLrXal
🌟AfCFTA: Африканская континентальная зона свободной торговли
С 2021 действует AfCFTA — континентальная зона свободной торговли, нацеленная на единый рынок товаров/услуг и свободное движение людей и инвестиций.
В фокусе: упрощение процедур, финансирование торговли, информация, интеграция рынков факторов производства. Это ускоряет внутрирегиональные цепочки и облегчает вход внешним поставщикам.
🖋Читать далее...
@buhgalterrf_ved
#AfCFTA#ЗСТ#Торговля#Процедуры#Интеграция
TASTE OF AFRICA 🌍 «Как Мама»
Не зря Африку ласково называют «Мама Африка» ❤️
Она, словно любящая мать, щедро делится своими богатствами со всем миром.
Сегодня немного про экономику и возможности.
Африка отдаёт:
🌍 20% мировых редкоземельных металлов - для наших смартфонов и электромобилей;
⛽ нефть и газ;
🍫 какао, кофе, хлопок;
☢️ уран;
💎 золото и алмазы.
А что получает взамен? 💔
Парадокс: Африка получает менее 10% от конечной цены своего сырья.
Какао-бобы выращивают здесь, а шоколад делают в Европе. Хлопок собирают в Мали, а одежду шьют в Китае. Кобальт для батарей добывают в ДР Конго -прибыль оседает за океаном.
Ежегодные потери континента из-за нехватки переработки — около $200 млрд (данные UNCTAD).
Африка добывает - другие богатеют.
Африка растит молодое поколение - другие получают таланты за копейки.
Насколько это справедливо? ❌
📢 Но перемены уже видны и сегодня технологии, созданные на ресурсах Африки, постепенно возвращаются на континент.
Представьте:
Африка преодолевает нехватку перерабатывающих заводов, инвестиций и квалифицированных кадров. Колониальная модель «поставщик сырья» уступает место производственной - с использованием передовых технологий мировых лидеров.
Это как дети, выросшие на материнской заботе, теперь заботятся о маме. ❤️
✨ Вот каким может быть будущее «Мамы Африки»:
• богатства перерабатываются на месте;
• молодёжь реализует потенциал дома;
• природа под защитой;
• культура становится мостом между народами;
• единый рынок AfCFTA (1,4 млрд человек) превращается в центр инноваций и торговли, сохраняя добродушие и открытость африканских народов.
🔥 Дорогу осилит идущий. Уже сегодня многие становятся частью перемен:
🔹 Бизнес и технологии - строят заводы в Африке, создают рабочие места, внедряют ИИ и инновации для местных задач.
🔹 Знания, опыт и навыки - передаются через обучение местных специалистов.
🔹 Каждый из нас может - выбирать продукты «Сделано в Африке», путешествовать с уважением к традициям, поддерживать местные сообщества.
«Мама Африка» только одна!
Ей необходимо справедливое будущее, которое мы создаём вместе с благодарностью, уважением, любовью и передовыми технологиями.
Если хотите, опишите в 1-2 предложениях: какую страну Африки вы хотели бы посетить и почему?
А мы подберём лучший вариант под ваши желания, время и бюджет! 💬
🌟Ритмическое путешествие продолжается -Мама Африка 🌟
#TasteOfAfrica#МамаАфрика#СправедливоеБудущее#AfCFTA#ТехнологииДляРазвития
#Opinion: From #Tokyo to Addis: Trilateral alliance redefining #Red_Sea security
On 25 December 2025, #Israel became the first #UN member to formally recognize #Somaliland, ending a 34-year diplomatic deadlock and demonstrating “principled realism" in the Red Sea and Indo-Pacific, writes Hiroko Kasai. For #Ethiopia, this recognition establishes a “Trilateral Stability Axis” with Israel and Somaliland, transforming the 2024 bilateral MoU into a multilateral security framework.
Kasai highlights practical benefits: the #Berbera Corridor offers Ethiopia a secure route for trade and industrial growth, while #Japanese engagement via the Ethiopian Investment Commission strengthens B2B cooperation.
She notes, “By leveraging the Berbera Corridor—now bolstered by Israeli technological cooperation—Japanese firms can view Ethiopia as a primary industrial hub for the 1.4 billion people of the #AfCFTA.”
https://addisstandard.com/?p=56442