Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
Эта весна по-французски мужского рода,
сердце в заложниках у серебра и черни
осеннего ясеня,
узловато зажато
пальцами черных ветвей
и глазами апрельского неба.
Пить не напиться
теплых дыханий земли
втягиваешь до одуренья
серую изморось боли
Обволакивай телом, припадая
на слабую долю
и стремись неподотчетно наверх.
Содрогаясь артериально,
расплывайся венозно вокруг.
Хорошо, что остались стороны света,
что ты помнишь, где запад, где - юг,
как нескончаем восток
и бесконечен север -
туда и уйдешь после спиною вперёд,
на каждом шагу исчезая, как тающий лёд.
Дождёшься ли, чтоб весна стала белой,
пока всё расцветает алым,
закрывает лицо черным,
перечёркивает себя мелом,
затыкает рот и глаза смелым,
проступает как мертвое тело
в недоступности, в призрачной красоте?
Время камлать, звать духов,
делать своё дело на
свободной пока частоте.
#49daysforfreedom#day25
Тема двадцать пятого ноября — гексагоны.
В качестве источника для этой карты автор взял Платформу поставки данных ФНС РФ, где можно посмотреть распределение трат населения в различных точках на карте. Цветовая гамма гексагонов соответствует изменению интенсивности выручки — чем насыщеннее цвет, тем больше общая сумма реализации товаров и услуг, проходящих через кассовые аппараты. Метрики рассчитываются за последнюю полную календарную неделю и отдельно для каждого субъекта РФ.
На карте представлена интенсивность выручки в Калининградской области. Как и стоило ожидать, больше всего население области и её гости тратят в крупных населённых пунктах, например, в Калининграде, Багратионовске, Черняховске. Также одни из самых высоких показателей интенсивности выручки замечены в населённых пунктах, расположенных на побережье Балтийского моря — Зеленоградске, Светлогорске, Балтийске. А ещё в глаза бросаются два гексагона на Куршской косе. Это одни из самых популярных мест среди туристов — Высоты Эфа и Мюллера.
#30DayMapChallenge#Day25#Hexagons#Cartography#GIS