Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac和Windows上不同的QTextEdit行高度_Macos_Qt_Layout_Fonts_Qtextedit - Fatal编程技术网

Macos Mac和Windows上不同的QTextEdit行高度

Macos Mac和Windows上不同的QTextEdit行高度,macos,qt,layout,fonts,qtextedit,Macos,Qt,Layout,Fonts,Qtextedit,我正在开发一个基于QTextEdit/QGraphicsTextItem的文本编辑器应用程序,并注意到Windows上的QTextEdit结果与Mac上的不同 具体而言,当使用Qt 4.8.5的“文本编辑”示例中的多行文本片段进行测试时: 使用大字体(48pt)时,文本布局几乎相同 当使用小字体(8pt)时,文本片段在Windows上的高度明显较大 我发现了几个相关的StackOverflow问题,但没有找到合适的答案。因此,我试图深入挖掘,并得出以下结论: 字体大小48pt:Mac和Wi

我正在开发一个基于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上的文本布局不同。Qt中是否有任何方法可以在Mac和Windows上强制执行相同的文本布局(Microsoft Word可以做到这一点)?或者有人对此有其他建议吗?

如果我没有弄错的话,Mac中的Qt4.8使用系统渲染引擎,Windows和其他平台使用Harfbuzz。Qt5.X对所有平台都使用QtHarfBuzz。两个不同的渲染引擎不可能有相同的渲染输出。如果可以,请尝试使用Qt 5.2。

这也是本机应用程序之间的区别吗?例如,记事本和Mac电脑的同等产品,如果字体相同,它们会有相同的区别吗?可能只是操作系统有不同的字体呈现约定,而Qt正试图在Mac中看起来是本地的。一个选项是检查QPlainTextEdit是否有不同的行为,如果它没有,并且可以满足您的需要,那么它可能是另一种选择solution@sashoalm:我认为将微软的写字板与苹果的文本编辑进行比较是没有意义的。它们有不同的代码库,可能使用不同的字体度量/呈现代码。我比较了Win7和MacOS上的Microsoft Word,它们彼此非常接近(不是100%相同,但足够接近)。@IlyaKobelevskiy:QPlainText不支持富格文本格式,对吗(粗体、斜体、编号列表等)?不幸的是,在这种情况下,它将不是我的应用程序的替代方案。不幸的是,我没有找到解决这个问题的方法,因此在这里无法真正将答案标记为解决方案。事实上,在Qt中,文本布局并不能保证跨平台完全相同。很好,我不知道这一点。我对Qt5.2做了一个应用程序的测试端口。文本布局在某些情况下与Qt4.8不同,但与Windows版本仍有很大差异。不过,还是值得一试。顺便说一句:似乎在4.8中也可以为Mac启用HarfBuzz: