Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
苹果提醒用户 2 月 10 日前完成 Home App 升级,否则影响智能家居设备使用
苹果推出全新 Apple Home 架构,完成升级至2026年2月10日前。用户需在此时间内完成升级,以避免智能配件和自动化场景运行异常的问题。此外,未升级用户无法使用扫地机器人支持等功能,也无法获取安全补丁和性能优化更新。
标签:#applehome
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot