Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
🇬🇧It Happened on Hyde Street_Devour #01
🇷🇺Истории улицы Хайд_Лакомка #01
Бодипозитив? НЕ, не слышал! Узнайте, как девочки относятся к собственному весу и на что готовы пойти ради похудения! Окунитесь в очередную историю бедолаг, которым не повезло попасть на... улицу Хайд!
#комикс#comics#хайд#hyde
#ночноечтиво
#image
#shell#aesthetic#dark_mode#dynamic#hyde#hyprdots#light_mode#themes#unix_porn#wallpapers
HyDE is a clean, modular, and visually appealing development environment designed for Hyprland on Arch Linux and some Arch-based distros. It offers easy installation via a script that auto-detects NVIDIA cards and configures necessary drivers, but it may conflict with existing desktop environments or theming. You can customize it with many official and community themes using a tool called themepatcher. HyDE keeps your configuration organized and separate from core scripts, making updates safer and simpler. It also supports running in a virtual machine for testing. Joining the HyDE Discord community helps you get support and share ideas. This setup benefits you by providing a stylish, maintainable, and customizable desktop environment with a smooth update process and community support.
https://github.com/HyDE-Project/HyDE