Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
🌎 The Baltic Sea is home to some of the world’s best-preserved shipwrecks, thanks to low salt levels and cold water that prevent wood-eating organisms from thriving. These underwater time capsules reveal centuries-old trade and naval history almost untouched. ✨
#history⚡#shipwrecks⚡#archaeology
👉subscribe Interesting Planet
🌎 Sunken ships dot the floor of the Black Sea, preserved for centuries by its deep, oxygen-free waters. Archaeologists have found ancient Greek, Roman, and Ottoman vessels intact, with wooden hulls and cargo still recognizable. Over 60 shipwrecks have been mapped there using underwater robots since 2015. ✨
#ocean⚡#archaeology⚡#shipwrecks
👉subscribe Interesting Planet
👉more Channels
🌎 The disappearance of the USS Cyclops in 1918 remains one of history’s biggest maritime mysteries. This U.S. Navy ship vanished in the Bermuda Triangle with 306 crew and passengers, and no wreckage or trace has ever been found despite extensive searches. ✨
#history⚡#mystery⚡#shipwrecks
👉subscribe Interesting Planet
🌎 Deep beneath the Black Sea lies a vast expanse of water with almost no oxygen. This "dead zone" preserves ancient shipwrecks for thousands of years, preventing wood and even ropes from decaying. ✨
#shipwrecks⚡#preservation⚡#ocean
👉subscribe Interesting Planet
🌎 Beneath the Red Sea’s warm waters, the "Sha’ab Abu Nuhas" coral reef has caused more shipwrecks than almost any other spot, earning it the nickname “Ship Graveyard.” Strong currents and hidden shallows have claimed dozens of vessels, now home to vibrant marine life among the sunken ruins. ✨
#shipwrecks⚡#coralreef⚡#maritime
👉subscribe Interesting Planet