Установить свойства виджета в 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
❗️🇷🇺#ELFV#spo
акционеры ЭЛ5-Энерго одобрили реорганизацию ПАО «ЭЛ5-Энерго» в форме присоединения к нему АО «ВДК-Энерго» и ООО «ЛУКОЙЛ-Экоэнерго
в целях реорганизации одобрили допэмиссию на 26 958 745 240 акций
цена выкупа для несогласных = 0,5653 РУБ/АКЦ
релиз
❗️🇷🇺#MVID#spo
МВидео объявляет о начале реализации с 25 марта 2026 года преимущественного права акционеров в рамках допэмиссии
Компания уведомляет действующих на 19 сентября 2025 года акционеров Компании о том, что начиная с 25 марта 2026 года у них есть возможность реализовать преимущественное право приобретения акций ПАО «М.видео» в рамках реализации дополнительной эмиссии по открытой подписке.
Привлеченные средства от допэмиссии будут направлены на развитие ключевых направлений бизнеса Компании, включая реализацию новой стратегии по построению мультикатегорийного маркетплейса с развитой офлайн-розницей. Допэмиссия также завершит процесс дофинансирования Компании в объеме 30 млрд рублей от действующих акционеров. Предельный объем допэмиссии – 1,5 млрд обыкновенных акций, реальный объем может составлять кратно меньшую цифру относительно максимального числа акций к размещению.
⚠️🇷🇺#LIFE#spo
ПАО "Фармсинтез" (Ленинградская область) во втором полугодии 2026 года намерено провести дополнительную эмиссию обыкновенных акций, которые планируется разместить по открытой подписке, сообщается в пояснениях к отчету компании по РСБУ — ИФ
mt в max
❗️🇷🇺#ELN#spo
«Эталон» объявляет о начале сбора заявок на участие в SPO на Московской бирже
Ценовой ориентир в рамках SPO составляет 46 руб/акц
Сбор предварительных заявок в рамках Размещения продлится с 26 января по 9 февраля 2026 года включительно.
В рамках SPO Компания может разместить до 400 млн обыкновенных акций дополнительного выпуска для привлечения целевого объема средств в размере до 18,4 млрд руб. Итоговое количество размещаемых Акций будет объявлено по итогам SPO.
Все денежные средства, привлеченные в рамках SPO, поступят в Компанию (100% cash-in). Из них 14,1 млрд рублей Компания намерена направить на финансирование стратегической сделки по приобретению АО «Бизнес-Недвижимость»
релиз
в акциях Эталон планка
Сегодня был последний день приема заявок от акционеров на участие в закрытой доп. эмиссии 🛃 ОАО «Аэропорты Кыргызстана» (7-й выпуск, MAIR7). Акции можно было приобрести по номинальной
стоимости 424,0657 сом через брокера 📈 ОсОО «Фридом Финанс».
#MAIR#SPO#АэропортыКыргызстана
@kgsinvest
«окно Кыргызстана в мир» становится шире.
Финансовый анализ 🛃 ОАО «Аэропорты Кыргызстана»
Закрываю свои «долги» перед Новым Годом. Заглянул под капот и подготовил болшой финансовый обзор компании ОАО «Аэропорты Кыргызстана» с учетом данных за последние 9 месяцев и экономического эффекта от грядущего SPO https://invest.kg/analytics/airports-of-kyrgyzstan/
Государство усиливает свою долю, а миноритарии получают меньше контроля и пропорционально меньше будущей прибыли. Cтоит ли покупать или наоборот избавляться от акций? Имеет ли смысл участвовать в SPO MAIR7?
@kgsinvest
#АэропортыКыргызстана#MAIR#SPO#AsmanAirlines#аналитика
Нравятся большие обзоры? Ставь 👍
📈 Итоги торгов на Кыргызской фондовой бирже за 16.02-20.02 2026
🔹 Объем торгов: 3,66 млрд сом
🔹 Первичный рынок: 3.66 млрд сом
🔹 Вторичный рынок: 2,69 млн сом.
🔹 Объем торгов USD: 1,100 USD
🔹 Первичный рынок USD: 1,100 USD
💼СДЕЛКИ
📊Акции:
🔝🪙🇰🇬 ОАО Государственный финансовый холдинг (GSFH4)
▫️ Объем: 3,500,000,000 сом (3.5 млрд. сом)
▫️ Цена: 1,000 сом
▫️ Количество акций: 3,500,000 шт
▫️ Сделок: 1
🔝💳 ОАО МБанк (KAKB, KAKB16, 18-27)
▫️ Объем: 711,060 сом
▫️ Цена: 20 сом
▫️ Количество акций: 35,553 шт
▫️ Сделок: 20
🛃 ОАО Аэропорты Кыргызстана (MAIR выпуски 3,5,6)
▫️ Объем: 348,696 сом
▫️ Цена: 500-516 сом (средняя 505.36 сом)
▫️ Количество акций: 690 шт
▫️ Сделок: 9
🛍 ОАО ЦУМ Айчурек (AICH4, AICHp2)
▫️ Объем: 21,114 сом
▫️ Цена: 51 сом
▫️ Количество акций: 414 шт
▫️ Сделок: 2
👚ОАО Айгул (г. Бишкек), акция простая (AIGL)
▫️ Объем: 15,000 сом
▫️ Цена: 600 сом
▫️ Количество акций: 25 шт
▫️ Сделок: 1
⚡️ ОАО Национальная электрическая сеть Кыргызстана (NESK)
▫️ Объем: 5,000 сом
▫️ Цена: 0.5 сом
▫️ Количество акций: 10,000 шт
▫️ Сделок: 1
💵Облигации:
🔝🪙🇰🇬 ГКВ-12 месячные
▫️ Объем: 139,599,296 сом (139.6 млн. сом)
▫️ Цена: 90.4 сом
▫️ Количество облигаций: 1,544,240 шт
▫️ Сделок: 3
🪙🏦 ОАО Дос-Кредобанк
Субординированные облигации (DKRBb2)
▫️ Объем: 22,381,000 сом
▫️ Цена: 1,000 сом
▫️ Количество облигаций: 22,381 шт
▫️ Сделок: 29
🔝🏗 ОсОО Первая Металлобаза (PMTBb8)
▫️ Объем: 1,544,126 сом
▫️ Цена: 5,113 сом
▫️ Количество облигаций: 302
▫️ Сделок: 2
🍬ОАО Каинды Кант, облигации USD (KKNTb2)
▫️ Объем сделки: 1,100 USD
▫️ Цена: 100 USD
▫️ Количество облигаций: 11 шт
▫️ Сделок: 2
🏦 ОАО МФК ИнвесКор СА (INVCb)
▫️ Объем: 41,000 сом
▫️ Цена: 1,000 сом
▫️ Количество облигаций: 41 шт
▫️ Сделок: 1
Оборот на вторичном за неделю рынке всего 2.69 млн. сом.
Первичный рынок стабильно формирует основной оборот КФБ, особенно в государственном и долговом сегментах. После завершения SPO капитализация государственного финансового холдинга (GSFH) выросла с 5.4 млрд сомов до 8.9 млрд сомов. На первичном рынке реализовали субординированные облигации ОАО «Дос-Кредобанк» на 22.4 млн сомов.
Акции остаются низколиквидными. Освновные обороты пришлись на 💳 ОАО МБанк (KAKB) и 🛃ОАО Аэропорты Кыргызстана (MAIR).
📈 Freedom Broker завершил размещение акций 🛃 ОАО «Аэропорты Кыргызстана» на 9.5 млрд сомов. Всего в рамках седьмого выпуска (MAIR7) было размещено свыше 22.5 млн простых именных акций. Госфиннадзор уже признал итоги. Рыночная цена акций сейчас на уровне 500 сом за шт.
🛫🇨🇳 China Southern Airlines запускает прямые рейсы между Гуанчжоу и Бишкеком.
@kgsinvest#итогинедели#SPO#MAIR#MBANK#KAKB
👍 Нравится формат? Поддержите реакцией.