Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
A steadfast and resilient Iftar last night in my hometown of #Khiam❤️
Iftar took place in the town square surrounded by rubble of their homes and shops brought down by the Zionist war machine with US-made weapons.
صحة وهنا ع قلوب أشرف شعوب الأرض❤️
تركولي دعسة مسّح صباطي فيها.
One of the many letters and messages left behind by Zionist filth in the ruins of my house in the southern Lebanese town of #Khiam..one of which was a good doormat to clean my boots with.
In a heartbreaking video, Julia shared moments while she was playing the piano in her home in Khiam, South Lebanon, which she discovered in a video circulated by Israeli soldiers that was destroyed during the border clashes when they were attempting to occupy her town.
#SouthLebanon#Khiam#LebanonUnderAttack#Israel
After futile attempts, Israeli tanks are invading specific neighborhoods in the border Lebanese villages which their soldiers failed to enter during the battle. With Hezbollah being committed to the ceasefire, who is going to stand up to the endless Israeli aggression?
#SouthLebanon#Khiam#Lebanon#Israel#SouthLitani