Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
⏰17 сентября в 10.00 (МСК) пройдет вебинар «Как UserGate SIEM защищает от шифровальщиков».
Мы расскажем о том, как UserGate SIEM9️⃣ поможет вашей компании бороться с одной из самых актуальных угроз — вирусами-вымогателями, также известными как шифровальщики, и продемонстрируем это на реальном кейсе.
👁Программа:
🔹 10.00 — Вступительное слово
🔹 10.10 — Демонстрация кейса защиты от шифровальщика
🔹 10.45 — Ответы на вопросы
👤Эксперты:
🔹 Дмитрий Чеботарёв, менеджер по развитию продукта UserGate SIEM
🔹 Олег Чехов, Presale инженер UserGate
➡️Встречаемся 17-го в 10:00!2️⃣
#вебинар
#SIEM
Друзья, пожалуй, сложно переоценить значение отказоустойчивости в вопросах обеспечения функционирования и информационной безопасности корпоративной инфраструктуры.
Понимая важность этой темы, мы решили обсудить её с нашими экспертами в формате вебинара, а заодно продемонстрировать, как это реализовано в наших продуктах UserGate SIEM в сценарии кластеризации, который нашим заказчикам позволит обеспечить отказоустойчивость.
13 марта в 10.00 (МСК)
Дмитрий Чеботарев, менеджер по развитию UserGate SIEM, и Дмитрий Богданов, ведущий инженер UserGate, расскажут:
🔹 Что такое отказоустойчивость SIEM-системы и для чего она нужна;
🔹 Как реализована архитектура кластера UserGate SIEM;
🔹 Как обеспечить High Availability системы.
Завершит мероприятие сессия вопросов и ответов.
➡Приглашаем вас к дискуссии!
#вебинар
#SIEM
🔎От обнаружения до изоляции: как автоматизировать реагирование на киберинциденты
Построение эффективной системы защиты требует не только обнаружения угроз, но и мгновенного реагирования. Приглашаем на практический вебинар, где покажем, как автоматизировать полный цикл противодействия атакам с помощью продуктов экосистемы UserGate SUMMA.
В программе:
🔸Выявление успешной фишинговой атаки с запуском шифровальщика
🔸Мгновенная изоляция зараженного хоста для остановки распространения угрозы
🔸Координация действий uSIEM, uClient, uMC и uNGFW для автоматического блокирования атаки и уведомления команд ИТ и ИБ
🔸Сокращение времени реагирования с часов до нескольких минут без участия человека на этапе сдерживания
Спикеры:
🔸Роман Спицын, Presale-инженер
🔸Дмитрий Чеботарёв, Менеджер по маркетингу uSIEM
🔸Яна Заковряжина, Менеджер по маркетингу uClient
Когда: 11 декабря, 10:00 (МСК)
Присоединяйтесь, чтобы узнать о всех преимуществах слаженной работы экосистемы UserGate SUMMA.
Зарегистрироваться
#вебинар
#Client
#SIEM
Друзья, мы часто говорим об открытости UserGate, готовности слушать и слышать наших партнеров и заказчиков, ориентироваться на их мнение, пожелания и предложения, дорабатывать наши решения под их задачи.
Чтобы вы могли лучше познакомиться с нашими продуктами, понять их возможности и функциональность, в том числе в условиях максимально приближенных к реальным, мы организовываем тестирования и пилотные проекты.
Коллеги из CISO Club немного «погоняли» наш SIEM и сделали подробный обзор. За что им большое спасибо! :)
Читайте, смотрите, задавайте вопросы!
И, конечно, записывайтесь на тестирование.
#SIEM#UserGateSIEM#тест#обзор
#yara#awesome_list#blueteam#blueteam_tools#cti#detection#detection_engineering#dfir#hacktools#incident_response#ioc#iocs#ir#ransomware#redteam#rmm#security#siem#soc#threat_hunting#threat_intelligence
You can access comprehensive security detection lists and threat hunting resources that help identify malicious activity across your infrastructure. These curated collections include indicators like suspicious file hashes, domain names, IP addresses, and behavioral patterns organized by threat type—from ransomware and phishing to command-and-control servers and vulnerable drivers. By integrating these lists into your security tools like SIEM platforms and endpoint detection systems, you gain immediate visibility into known threats while learning detection methodologies through guides and YARA rules. This accelerates your ability to hunt for compromises, validate security controls, and stay current with emerging attack techniques without building detection logic from scratch.
https://github.com/mthcht/awesome-lists