Mac和Windows上的QTextEdit行高不同

时间:2014-01-17 16:09:15

标签: macos qt layout fonts qtextedit

我正在开发一个基于QTextEdit / QGraphicsTextItem的文本编辑器应用程序,并注意到Windows上的QTextEdit结果与Mac上的结果不同。

具体来说,在Qt 4.8.5的“文本编辑”示例中使用多行文本片段进行测试时:

  • 使用大字体(48pt)时,文本布局非常相似
  • 当使用小字体大小(8pt)时,文本片段在Windows上的高度明显更大

我发现了一些相关的StackOverflow问题,但没有找到合适的答案。因此,我试图深入挖掘并找出以下内容:

  • 字体大小48pt:Mac和Windows上的线条高度非常接近(均约为60%)
  • 字体大小8pt:Mac上的行高约为50%。在Windows上,它约为75%

当提到“线高”时,我将上升高度(即“T”的高度)与它们之间的高度(两个文本行之间)进行比较。

以下是显示问题的屏幕截图。红线是Mac文本行的基线。:

Mac/Windows Line Height Comparison

似乎行高会导致Mac和Windows上的文本布局不同。在Qt中是否有任何方法可以在Mac和Windows上强制执行相同的文本布局(Microsoft Word设法这样做)?或者有人对此有其他建议吗?

1 个答案:

答案 0 :(得分:1)

如果我没弄错的话,Mac中的Qt 4.8使用系统渲染引擎& Windows和其他平台使用Harfbuzz。 Qt 5.X在所有平台上使用Qt Harfbuzz。两个不同的渲染引擎不太可能具有相同的渲染输出。如果可以,请尝试使用Qt 5.2。