Я пытался найти способ изменить значение по умолчанию межстрочного интервала файла шрифта, используя QFont
, QFontMetrics
или что-то типа того. я использую QPainter::drawText
нарисовать текст в ограничивающем прямоугольнике.
Странно что QFont
позволяет изменять кернинг шрифта и даже имеет некоторую операцию растяжения и межбуквенный интервал, но ничего не меняет пространство по умолчанию между строками. Я искал и нашел некоторые частичные решения, используя QTextLayout
но ни один, казалось, не работал должным образом.
Мне нужно использовать QPainter
потому что я генерирую текстуру с текстом, который будет отображаться с OpenGL.
Ищете больше идей для меня, чтобы попробовать!
ОБНОВИТЬ
Я обнаружил, что могу использовать QPainter
нарисовать QStaticText
который позволяет форматировать текст HTML, аналогично QTextDocument
, Тем не менее, стиль CSS не работает так, как в QTextDocument
(есть сообщение об ошибке) … Поэтому все еще не ведущий, но я надеюсь, что это ставит меня на правильный путь.
РЕШИТЬ
Я получил то, что хотел, используя QTextDocument
Как и предполагал Михаил. Ссылка на решение
QFontMetrics
не был разработан специально для многострочного текста.
использование QTextDocument
, Вы можете распечатать многострочный и форматированный текст с ним, даже используя QPainter
, Смотрите решение, как использовать QPainter с QTextDocument
Кажется, здесь мало что можно сделать.
QFontMetrics::lineSpacing
возвращает то, что вам нужно, но только для чтения.
Это сумма высоты шрифта и ведущих. Вы можете отрегулировать высоту — установите его в QFont
конструктор. Но вы не можете установить лидерство.
Некоторые люди добавляют \n
до конца строки, чтобы увеличить расстояние между строками, но, конечно, это не всегда хорошее решение.