Установить свойства виджета в 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
18 июля 2024 года прошел вебинар "Система антифрод в платежной организации", который был организован ACFE Chapter in Kazakhstan и Compliance Hub.
Тема вебинара вызвала большой интерес в связи со значимыми изменениями законодательства, затрагивающего деятельность платежного бизнеса и вопросы противодействия мошенничеству в Казахстане.
#antifraud#amlcft
На этой неделе прошел вебинар на тему Supervision and Compliance in Anti-Money Laundering and Combating the Financing of Terrorism & Antifraud.
Тема актуальна как для комплаенс и ПОД/ФТ сообщества, так и антифрод офицеров различных организаций.
Спикером выступил член Compliance Hub - Dulat Akkassov. Вебинар собрал слушателей не только из Казахстана, но и других стран.
#amlcft#antifraud
Борьба с мошенничеством в финансовых учреждениях становится все более насущной задачей, требующей постоянного внимания, вложений и инновационных подходов. Мошенники применяют всё более сложные схемы, включая методы социальной инженерии, что ставит под угрозу безопасность личных данных и финансов клиентов.
30-31 октября 2024 года пройдет ежегодная конференция, посвященная реальным практикам в финансовом секторе по противодействию мошенничеству. Мероприятие объединит специалистов в области антифрода, управления рисками и кибербезопасности и предложит обзор эффективных стратегий защиты финансовых интересов клиентов в современных условиях.
https://msbevents.com/11th-antifraud/
#antifraud#fraud
#fraudweek день третий
Ознакомьтесь с небольшим, но полезным материалом от Association of Certified Fraud Examiners (ACFE) о том, как быть борцом с мошенничеством в вашей организации - "How to be a FRAUD FIGHTER".
Роль антифрод офицера важна в различных компаниях и направлена на предотвращение как внутреннего, так и внешнего мошенничества.
#antifraud
Всем привет!
Публикуем подробную информацию о грядущем вебинаре "Supervision and compliance in AML/CFT and antifraud", который пройдет 15 марта 2024 года.
В этот раз спикером выступит член Compliance Hub - Dulat Akkassov.
Прилагаемый файл содержит:
- информацию о спикере и модераторе
- описание вебинара
- дату и время ивента
- ссылку на регистрацию и пр.
До скорых встреч!
#amlcft#antifraud#compliance
15 февраля прошел вебинар, организованный ACFE Chapter in Kazakhstan, на котором CEO Compliance Hub - Тимур Мусин поделился полезной информацией о финансовых преступлениях, связанных с использованием цифровых активов (криптовалюты), в том числе:
✔️ текущей ситуации с рынком цифровых активов и его влиянии на вопросы антифрод, ПОД/ФТ и комплаенс
✔️ существующих мошеннических схемах и иных преступлениях
✔️ примерах фейковой рекламы и признаках мошеннических схем с использование криптовалюты
✔️ мерах, необходимых для минимизации риска мошенничества в обществе и организации
✔️ требованиях к Antifraud и AML системам, а также специалистам
Также был затронут вопрос регулирования сферы цифровых активов в Казахстане и на площадке AIFC (Astana International Financial Centre). Напоминаем, что для работы с цифровыми активами важно проявлять должную осмотрительность и обращаться только к проверенным организациям, имеющим лицензии на соответствующую деятельность.
#antifraud#compliance#amlcft
В пятницу прошло отличное мероприятие, посвященное борьбе с мошенничеством FCBK UFC Ultimate Fraud Control, организатором которого выступило The First Credit Bureau.
Представители Compliance Hub - Юлия Салехова и Асылбек Успанов также приняли участие в данном мероприятии, а также смогли встретиться с гениальным Бреттом Кингом, автором нашумевших бестселлеров "Банк 4.0" и "Техносоциализм".
https://www.instagram.com/p/Cw-m7THoI15/?img_index=1
#antifraud#amlcft#compliance
#fraudweek день четвертый
Compliance Hub Community в рамках недели, посвященной противодействию мошенничеству, делится полезной инфографикой от Association of Certified Fraud Examiners (ACFE) и The Institute of Internal Auditors Inc. по данному вопросу.
#antifraud#amlcft
Члены Compliance Hub примут участие в конференции 𝐊𝐨𝐦𝐩𝐫𝐚𝐂𝐨𝐧𝐟. Цифровая эпоха и AI в безопасности.
✅ Тимур Мусин - выступит модератором в панельной сессии "Актуальные вызовы и решения в сфере комплаенс в 2024 году"
✅ Айдар Бекназаров - поделится информацией о профессиональных привычках, которые помогают стать успешнее
✅ Данияр Тукенов - расскажет о важности аудита системы ПОД/ФТ, его основных аспектах и значении в бизнесе
Мероприятие пройдет 24 октября 2024 года в г. Астана.
Пройти регистрацию и ознакомиться с программой мероприятия можно посредством следующей ссылки:
https://kompraconf2024.kz/
#compliance#antifraud#amlcft#esg
Команда Compliance Hub Community приняла активное участие в конференции KompraConf 2024, поделившись своими знаниями и идеями в рамках докладов и панельных сессий.
Запись трансляции опубликована по следующей ссылке: https://kompraconf2024.kz/
#compliance#amlcft#antifraud#dataprotection
Коллеги, отличного и продуктивного четверга!
Напоминаем, что на этой неделе у нас два интересных ивента:
- вебинар, посвященный вопросам ПОД/ФТ, совместно с ACFE Chapter in Kazakhstan
- крупное мероприятие в честь Международного женского дня "Impact the Future", где мы расскажем о комплаенс, ПОД/ФТ, противодействии мошенничестве, защите персональных данных, а также цифровых активах
Оба мероприятия - бесплатны
Let's make compliance great again)
#compliance#amlcft#antifraud#dataprotection