Пользовательский интерфейс в Qt

QFontMetrics: измеряем текст перед размещением в интерфейсе Qt

Ширина строки и высота шрифта

QFontMetrics помогает оценить, сколько места займёт текст с конкретным шрифтом. Например, можно определить ширину подписи до рисования или проверить, помещается ли строка в доступную область.

const QFontMetrics metrics(widget->font());
const int textWidth = metrics.horizontalAdvance(label);
const int lineHeight = metrics.height();

if (textWidth > availableWidth) {
    // выбрать перенос, сокращение или подсказку
}

Для нескольких строк измеряйте прямоугольник с нужными флагами через boundingRect(); ширина одной строки не учитывает переносы. В пользовательских интерфейсах не задавайте фиксированные размеры по одному шрифту: масштабирование, подмена шрифтов и локализация меняют метрики.

Метрики должны совпадать с отрисовкой

Создавайте метрики из того же шрифта, которым рисуете текст. Если точности целых пикселей недостаточно, используйте QFontMetricsF. Для виджета учитывайте доступную область после вычета отступов и рамок, а не только его внешний размер. Это особенно важно для кнопок, таблиц и пользовательских делегатов.