Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
ПАМЯТНИК НЕЛЬСОНУ МАНДЕЛЕ В ПРЕТОРИИ
🕊Девятиметровая статуя Нельсона Манделы установлена на территории комплекса правительственных зданий «Юнион Билдинг» (англ. Union Buildings) в Претории.
🗓 Памятник был торжественно открыт 16 декабря 2013 года, на следующий день после завершения 10-дневного национального траура, объявленного в связи со смертью Манделы 5 декабря.
📍 Церемония открытия прошла в День примирения — символический момент, ознаменовавший начало новой главы в истории ЮАР.
Статуя с раскинутыми руками воплощает идеи единства, примирения и «убу́нту» — ценности, которыми Мандела вдохновлял не только свою страну, но и весь мир.
Про философию «убунту» (Ubuntu) мы расскажем в одном из следующих постов.
#ЮАР#Мандела#Претория#архитектура#история#ЮнионБилдинг#Ubuntu#MandelaLegacy#ДеньПримирения
NELSON MANDELA STATUE IN PRETORIA
🕊 The nine-meter statue of Nelson Mandela stands on the grounds of the Union Buildings in Pretoria.
🗓 It was officially unveiled on December 16, 2013, one day after the end of South Africa’s 10-day national mourning period, which followed Mandela’s passing on 5 December.
📍 The unveiling took place on Reconciliation Day, a symbolic moment marking a new chapter in the nation’s journey.
With outstretched arms, the statue represents unity, reconciliation, and the spirit of Ubuntu — values Mandela championed throughout his life.
More on Ubuntu in an upcoming post.
#SouthAfrica#Mandela#Pretoria#UnionBuildings#Ubuntu#MandelaLegacy#ReconciliationDay#History#Architecture
🕊Nelson Mandela International Day, or Mandela Day, is celebrated every year on July 18, the birthday of South Africa’s legendary freedom fighter and first Black president. 🇿🇦
🗓 The United Nations officially declared the day in 2009, with the first Mandela Day held on July 18, 2010.
#MandelaDay#NelsonMandela#SouthAfrica#UN#HumanRights#Ubuntu#Freedom#Justice#Inspiration#MandelaLegacy