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
до конца строки, чтобы увеличить пространство между линиями, но, конечно, это не всегда хорошее решение.