Я использую QTextTable и QTextTableFormat, чтобы создать файл PDF и вставить код HTML в ячейки таблицы.
"<span style=\"font-weight: bold; font-size: %1px\">%2</span>"
Я хочу сжать содержимое заголовка таблицы так, это поместится в 2 строки. Я использую QFontMetrics, чтобы вычислить ширину строки, которую я хочу отобразить, затем начинаю уменьшать размер шрифта, пока он не уместится. Минимальный размер шрифта, который я допускаю, составляет 8 пикселей, если текст шире, я удаляю конец текста с помощью (.. .).
Проблема: я вычисляю максимальную ширину ячейки, скажем, 50, поэтому ширина 2 строк для заголовка будет 100. Я сократил текст до 90 пикселей, и он все еще выиграл ' не подходит, если текст похож на «iii aaaaaaaaa», потому что второе слово намного длиннее первого. И первое слово будет занимать всю первую строку, даже если оно имеет ширину всего около 20 пикселей, а второе слово будет разбито на две строки, в результате чего получится 3 строки.
Я ищу способ обнаружения или вычислите, если данные QFont
и QString
, вставленные в QTextDocument
с использованием QTextTableFormat
, приведут к тому, сколько строк