Установить свойства виджета в 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
Дорогие коллеги,
Публикуем информацию от Astana Financial Services Authority (AFSA) о последних изменениях в регуляторной базе по ПОД/ФТ.
Будет полезно для лицензированных компаний, работающих в юрисдикции Международного финансового центра "Астана".
Хорошего дня!
#amlcft
ЕС укрепляет инструментарий по борьбе с отмыванием денег и финансированием терроризма.
https://www.europarl.europa.eu/news/en/press-room/20240419IPR20586/new-eu-rules-to-combat-money-laundering-adopted
#amlcft
Юридические компании также сталкиваются с вызовами в области ПОД/ФТ.
https://www.reuters.com/legal/legalindustry/law-firm-clyde-co-fined-635k-breaching-uk-money-laundering-rules-2024-01-11/
#amlcft
18 января Financial Action Task Force (FATF) проводит вебинар "Crowdfunding for Terrorism Financing".
Тема будет актуальна для AML/MLRO офицеров, особенно работающих в области финтех и краудфандинге.
Более подробная информация в прилагаемой ссылке.
Кстати, вы уже провели ежегодную оценку подверженности продуктов/услуги организации риску отмывания денег и финансирования терроризма?
https://www.fatf-gafi.org/en/topics/methods-and-trends/Webinar-crowdfunding-for-terrorist-financing.html
#amlcft
20 марта текущего года наши коллеги приняли участие в форуме AML and KYC in Digital World, где поделились с коллегами из Узбекистана, Кыргызстана, Украины, Азербайджана и других стран полезной информацией:
- о глобальных вызовах и мерах в области ПОД/ФТ и должной осмотрительности;
- о программах реализации мер ПОД/ФТ для сферы цифровых активов.
#amlcft#compliance
Federal Bureau of Investigation (FBI) опубликовало очередной отчёт о преступлениях в интернете. В целом ничего нового, среди популярных преступлений фишинг, кража персональных данных и схемы с использованием цифровых активов.
#compliance#amlcft
Дорогие друзья,
Мы продолжаем серию полезных и бесплатных вебинаров, направленных на развитие антиотмывочной и антикоррупционной культуры, а также повышения осведомленности в вопросах противодействия мошенничеству.
В этот раз ACFE Chapter in Kazakhstan и Compliance Hub приглашают вас на вебинар на тему "Supervision and Compliance in Anti-Money Laundering and Combating the Financing of Terrorism & Antifraud".
Вебинар является бесплатным и предоставит слушателям 1,5 CPE.
Дата: 15 марта 2024 г.
Время: С 20:00 до 21:20
Формат: Онлайн
Язык: Английский
Для участия необходимо пройти регистрацию по следующей ссылке:
https://us06web.zoom.us/meeting/register/tZUode-urj0oEtPK0j0U6CMZGv93PnNr7GaN
#amlcft#compliance
На ресурсе Inbusinesskz опубликована интересная статья, посвященная топ-20 самым высокооплачиваемым среди молодежи специальностям в Казахстане за последние несколько лет.
Есть специальность, связанная с комплаенс.
https://inbusiness.kz/ru/news/nazvan-tor-20-samyh-vysokooplachivaemyh-specialnostej-v-kazahstane
#compliance#amlcft
NAVEX 18 января проведет вебинар, на котором расскажет об основных трендах в области комплаенс - "Top 10 Risk & Compliance Trends for 2024".
Регистрацию можно пройти по прилагаемой ссылке.
https://www.navex.com/en-us/campaigns/2024-top-ten-risk-compliance-trends/?utm_campaign=wbn-2024top10trends&utm_medium=syndication&_hsmi=289203842&_hsenc=p2ANqtz-9tEy7J499R4SSMDmWwRug2MLMaGKE8p6J4Q2YP8KvsL88-pETD37dJeQ5ukKcfLCW5ECZxEzeHxJqfxbnQElYbviS867XLh-gMwex0n-PhCRkvp4c&utm_source=cci
Посмотрим насколько видение коллег из другой юрисдикции будет перекликаться с трендами, которые мы обсудили ранее. Как минимум заявлены цифровая трансформация, искусственный интеллект и ESG.
Ссылка на тренды 2024 года:
https://www.youtube.com/watch?v=VWW_kpnjPT8
Ссылка на тренды 2023 года:
https://www.youtube.com/watch?v=x-8THzNixU4
#compliance#amlcft