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