Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
Keeping #OurHawkerCentres clean and safe is a shared responsibility!
When we #ClearOurTables, #ReturnOurTrays and #BinUsedTissues after our meals, it scores a hat-trick of kindness, making it a more pleasant dining experience for everyone!
#DidYouKnow that East Coast Lagoon Food Village was built on reclaimed land? Opened in 1978, it complements the beach-front activities of Singapore’s largest seaside resort.
After enjoying the delicious hawker food while enjoying the sea breeze, let’s remember to return our used trays and crockery. We all have a part to play in ensuring a clean and safe dining experience at #OurHawkerCentres. #ClearOurTables#ReturnOurTrays#BinUsedTissues
P.S. You don’t have to wipe the tables, as cleaners will do so. More information and #FAQs here: www.nea.gov.sg/clean-tables