Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
Hours before the Freedom Flotilla’s ship, the ‘Conscience’, was about to be boarded by dozens of volunteers from over 21 countries (including high profile activists), the ship was attacked by two drones. Signal was cut and information about the number of people on board was not clear. SOS distress signals were ignored. Here is what happened. #AllEyesOnDeck#DemandSafePassage#FreedomFlotilla
Takis, from Greece, sailed with the Free Gaza Movement in 2008 - one of the first missions by sea that reached Gaza. Now, 17 years later, he is back, ready to help break Israel's illegal siege. #AllEyesOnDeck#DemandSafePassage#BreakIsraelsSiege#EndTheBlockade#FreeGaza🔽