QFont не позволяет устанавливать межстрочный интервал или ведущий вручную

Я пытался найти способ изменить значение по умолчанию межстрочного интервала файла шрифта, используя QFont, QFontMetrics или что-то типа того. я использую QPainter::drawText нарисовать текст в ограничивающем прямоугольнике.

Странно что QFont позволяет изменять кернинг шрифта и даже имеет некоторую операцию растяжения и межбуквенный интервал, но ничего не меняет пространство по умолчанию между строками. Я искал и нашел некоторые частичные решения, используя QTextLayout но ни один, казалось, не работал должным образом.

Мне нужно использовать QPainter потому что я генерирую текстуру с текстом, который будет отображаться с OpenGL.

Ищете больше идей для меня, чтобы попробовать!

ОБНОВИТЬ

Я обнаружил, что могу использовать QPainter нарисовать QStaticText который позволяет форматировать текст HTML, аналогично QTextDocument, Тем не менее, стиль CSS не работает так, как в QTextDocument (есть сообщение об ошибке) … Поэтому все еще не ведущий, но я надеюсь, что это ставит меня на правильный путь.

РЕШИТЬ

Я получил то, что хотел, используя QTextDocumentКак и предполагал Михаил. Ссылка на решение

6

Решение

QFontMetrics не был разработан специально для многострочного текста.

использование QTextDocument, Вы можете распечатать многострочный и форматированный текст с ним, даже используя QPainter, Смотрите решение, как использовать QPainter с QTextDocument

3

Другие решения

Кажется, здесь мало что можно сделать.

QFontMetrics::lineSpacing возвращает то, что вам нужно, но только для чтения.

Это сумма высоты шрифта и ведущих. Вы можете отрегулировать высоту — установите его в QFont конструктор. Но вы не можете установить лидерство.

Некоторые люди добавляют \n до конца строки, чтобы увеличить расстояние между строками, но, конечно, это не всегда хорошее решение.

0

По вопросам рекламы [email protected]