Как правило, вы не должны указывать размеры шрифта для элементов управления вручную в Qt Designer/Creator, поскольку это приводит к проблемам, которые у вас есть. Причиной несоответствия является тот факт, что разные платформы используют разные настройки DPI (96 dpi в Windows и 72 dpi в 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. Но это может быть лишним.
Надеюсь, это поможет!
person
BastiBen
schedule
09.01.2010