Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
Писатель должен писать, режиссёр снимать, геймдизайнер и мастер игр — делать игры, музыкант — сочинять музыку, певец — петь.
Первая «Земфира» в этом году:
https://youtu.be/viy2FXOcI68
Кого взбесит, кого ударит, кого заставит поморщиться, я точно не остался равнодушным.
85 день.
#какэтосвязано#нетинебудет#upinflames#caratimes
Даже не знаю, как лучше.
А пока Ruelle провожает меня домой из длинного трипа, в котором я рычал из бассейна, рассказывал про шубу в тупике, танцевал, продавал, как обычно — в такие времена, видел Рязань — без особых отдельных глаз, нашёл лазейку на крыши Иерусалима — в центре Москвы, обнимал и слушал, слушал, слушал песню снега.
When it all goes up in flames
We’ll be the last ones standing
Apple Music:
https://music.apple.com/ru/album/up-in-flames/956310183?i=956310184
Spotify:
https://open.spotify.com/track/1HZico5CulviKXckL6GJUM?si=-pWRzGthQ7-xDlU1i2M2zg
Яндекс музыка:
https://music.yandex.ru/album/2444719/track/20525755?utm_medium=copy_link
#runboyrun#upinflames#cominghome#нетинебудет#какэтосвязано