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

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

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

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

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

обновление

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

решить

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

2 ответов


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

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


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

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

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

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