Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
👩💻 Ansible для начинающих + практический опыт.
• Бесплатный мини-курс, который знакомит любого абсолютного новичка в DevOps с основными моментами Ansible с помощью простых практических упражнений, которые вы можете практиковать прямо в браузере. Всего будет 38 уроков, 2 часа 34 минуты видео и 63 теста. Программа следующая:
• Введение в Ansible:
➡Обзор Ansible;
➡Демо: установка среды;
➡Демо: установка Ansible;
➡Знакомство с YAML;
➡Демо: наши упражнения;
➡Lab: YAML;
➡Тест: Introduction.
• Основные понятия Ansible:
➡Inventory;
➡Lab: Inventory;
➡Тест: Inventory;
➡Демо: особенности Windows;
➡Playbooks;
➡Lab: Playbooks;
➡Тест: Playbooks;
➡Демо: playbooks;
➡Modules;
➡Lab: Modules;
➡Variables;
➡Lab: Variables;
➡Тест: Variables;
➡Демо: Atom IDE.
• Механика Ansible:
➡Conditionals;
➡Lab: Conditionals;
➡Loops;
➡Lab: Loops;
➡Тест: Loops;
➡Roles;
➡Демо: roles;
➡Тест: Roles;
➡О приложении;
➡Lab: App Deploy;
➡Демо: развертывание приложения.
➡️https://stepik.org/course/123806
#Ansible#DevOps
💬 Ansible + Grafana Loki: Настраиваем отправку уведомлении в чат после логина на сервер по SSH.
• В этой статье мы развёрнем через Terraform несколько серверов в Yandex.Cloud, а затем при помощи Ansible настроим необходимый софт на каждом сервере. У нас будет основной сервер, где будет развёрнут Loki (система агрегирования логов) и Grafana (инструмент для визуализации данных), на серверах, которые мы хотим отслеживать, будет установлен Promtail (агент для сбора и отправки логов). Мы разберёмся с тем, как отслеживать входы на сервер, а затем в удобном формате отправлять об этом уведомления в чат Telegram с помощью вышеуказанных сервисов.
• Помимо этого, вы можете использовать Grafana не только для отслеживания коннектов к вашим серверам. Вы также можете развернуть Node-Exporter(-s)+Prometheus для мониторинга, чтобы отслеживать производительность серверов.
➡️https://habr.com/ru/articles/795855/
#Ansible#SSH#ИБ#DevOps
#jinja#ansible#ansible_collection#collection#devsec#hacktoberfest#hardening#linux#mysql_hardening#nginx#nginx_hardening#os_hardening#playbook#protection#role#ssh_hardening#sysctl
devsec.hardening is an Ansible collection that battle-tests security hardening for Linux (CentOS, AlmaLinux, Rocky, Debian, Ubuntu, etc.), MySQL, Nginx, and SSH, matching DevSec Inspec baselines. Install via `ansible-galaxy collection install devsec.hardening` and apply roles like os_hardening easily. It saves you time by automating secure configs across servers, cuts manual work, boosts compliance, and shrinks attack surfaces for safer systems.
https://github.com/dev-sec/ansible-collection-hardening