Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
🌎 The Patagonian "stone flower" fungus, living on roots in arid South America, mimics pebbles to avoid predation. Its camouflaged fruiting bodies slowly absorb moisture and burst after rare rains, releasing clouds of spores across the steppe. ✨
#fungus⚡#camouflage⚡#Patagonia
👉subscribe Interesting Planet
🌎 The Devil’s Cigar is a rare fungus found only in parts of Texas and Japan. When it opens, it releases visible clouds of spores with a faint hissing sound—one of the few mushrooms that “smokes” as it spreads its seeds! ✨
#fungus⚡#nature⚡#Texas
👉subscribe Interesting Planet
🌎 The leafcutter ant creates underground gardens by carrying fresh leaves to feed a special fungus, which is their true food. This farming partnership has evolved over millions of years, making these ants nature’s original farmers long before humans. ✨
#ants⚡#fungus⚡#agriculture
👉subscribe Interesting Planet