@Qiao_blog · Post #1127 · 19.03.2025 г., 14:08
▎fail2ban #Linux#fail2ban#安全 https://github.com/fail2ban/fail2ban
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #380 · 21 окт.
Регулярно приходится писать и ревьюить код, где используется 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
Пребарај: #fail2ban
@Qiao_blog · Post #1127 · 19.03.2025 г., 14:08
▎fail2ban #Linux#fail2ban#安全 https://github.com/fail2ban/fail2ban
@githubtrending · Post #15249 · 26.10.2025 г., 12:30
#html#ech#fail2ban#http#mixed#ml_dsa_65#ml_kem_768#post_quantum#reality#shadowsocks#shadowsocks2022#tls#trojan#tunnel#vless#vmess#wireguard#x25519#xtls_rprx_vision#xtls_rprx_vision_udp443 3X-UI is an easy-to-use, open-source web control panel for managing Xray-core VPN servers. It supports many VPN protocols like VMess, VLESS, Shadowsocks, Trojan, and WireGuard, letting you configure, monitor traffic, manage users, and set limits through a simple web interface. It includes features like automatic SSL certificates, traffic statistics, multi-user support, and security options such as firewall rules and IP bans. This makes managing VPN servers faster, more secure, and accessible even if you are not an expert, helping you control your VPN setup efficiently and safely. https://github.com/MHSanaei/3x-ui