Как правило, вы не должны указывать размеры шрифта для элементов управления вручную в Qt Designer / Creator, так как это приводит к вашим проблемам. Причиной несоответствия является тот факт, что разные платформы используют разные настройки DPI (96 т / д в Windows против 72 т / д в Mac OS X).
В результате шрифты отображаются с разными размерами.
Также вы упомянули HTML. Я предполагаю, что вы установили некоторый HTML-текст в QTextEdit
-подобном виджете, используя встроенный редактор. Когда вы выбираете размер шрифта там, Qt Creator создаст некоторый HTML-код, подобный следующему:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Sans'; font-size:11pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hello World</p></body></html>
Как видите, он устанавливает некоторые атрибуты font-size
, что действительно неприятно. Простое, простое решение для этой проблемы - полное удаление атрибутов style=
. Это заставляет QTextEdit
использовать вместо этого шрифт приложения по умолчанию (который должен подойти на всех платформах):
<html><head></head><body><p>Hello World</p></body></html>
Как примечание, это гораздо удобнее для переводчиков, так как им не нужно бороться со всеми бесполезными CSS.
К сожалению, QTextEdit Qt не поддерживает спецификацию размера шрифта в процентах (только px и pt). Если бы это произошло, вы могли бы использовать что-то вроде «90%», чтобы сделать текст меньше шрифта по умолчанию, оставаясь при этом в безопасности.
Другой вариант - это QWebView, который вы можете редактировать. Это учитывает хорошее форматирование текста, имея полное подмножество CSS. Но это может быть излишним.
Надеюсь, это поможет!