Установить свойства виджета в 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
📢Годовое общее собрание акционеров 💳ОАО «Мбанк»
ОАО «Мбанк» официально уведомляет о проведении годового общего собрания акционеров.
Главное о встрече:
Дата и время: 24 апреля 2026 года в 10:00.
Регистрация: с 09:00 до 10:00.
Место: г. Бишкек, ул. Горького, 1/2, «IT Hub Technopark», конференц-зал Flutter.
Список акционеров: составляется по состоянию на 20 апреля 2026 года.
Ключевые вопросы повестки дня:
Итоги 2025 года: утверждение отчетов Совета директоров, годового баланса и заключения внешнего аудитора.
Дивиденды: принятие решения о размере, порядке и форме выплаты дивидендов за 2025 год.
Развитие капитала: увеличение уставного капитала за счет нераспределенной прибыли 2025 года, а также через закрытое размещение дополнительных акций.
Стратегия и мотивация: утверждение финансового плана на 2026 год и программы долгосрочной мотивации сотрудников.
Обновление документов: утверждение новых редакций Устава, Кодекса корпоративного управления и Положения о Совете директоров.
Аудит: избрание внешнего аудитора на 2026 год и определение его вознаграждения.
#MBANK#KAKB@kgsinvest
Подготовил разбор финансового отчета за 2025 год 💳 ОАО «Мбанк» https://invest.kg/reports/mbank2025/
Смотрим как изменилась за год структура доходов.
Сильного роста нет, но зато успешно справляются с замещением выпадающих доходов от валютных операций.
В закрепе также есть ссылка на более полный анализ банка, но с более старыми финансовыми показателями.
Последние сделки на бирже за декабрь-январь с 04.12.2025 по 28.01.2025:
В торгах участвовали выпуски 24-27 простых акций 💳 ОАО «Мбанк» (тикеры KAKB24, KAKB25, KAKB26, KAKB27).
Всего сделок: 10
Общий оборот: 669 278 сом
Всего акций прошло через торги: 30 233 шт.
Диапазон цен за период: 20 – 24 сом
Средняя цена за период: 22,15 сом
#МБАНК#KAKB#MBANK
@kgsinvest
Заметил, что в MINVEST от 💳 Мбанк завезли возможность покупки крипты. Пока доступны только 🎲 Bitcoin, 🎲Etherium, 🎲Tron и 🎲USDT. Есть вывод на внешние кошельки.
#MBANK#KAKB#МБАНК
Вчера на сайте 📈 КФБ опубликовали отчеты за 1 квартал 2026 💳 Мбанк и 🛃 Аэропорты Кыргызстана.
——
Мой разбор этих отчетов будет после майских праздников, т.к. буду в путешествии и почти без интернета.
#MBANK#KAKB#АэропортыКыргызстана#MAIR@kgsinvest
📈 Итоги торгов на Кыргызской фондовой бирже за 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
👍 Нравится формат? Поддержите реакцией.