我使用
QTextEdit
显示阿拉伯文本,但当我调整文本时,字母之间存在微小间隙。
这是它的外观示例:
我强调了这里的差距:
我尝试改变:
字体。
字体粗细。
字体大小。
换行模式。
字体字母间距(当我给它一个负值时,这个间距缩小了一点,但这不是解决方案)。
字体字间距。
启用/禁用字距微调。
但是同样的问题。
该问题是由于对拉丁字母应用阿拉伯字母的理由而引起的。
与拉丁字母不同,阿拉伯字母之间不能有空格,并且由于在
QTextEdit
中对齐文本似乎会扰乱字母间距,因此它不能应用于阿拉伯文本,因为它只会使其看起来丑陋且难以阅读,因为字母之间的间隙。
一种似乎部分有效的解决方案是使用所用字体的 stretch 度量。就我而言,值
50
使间隙几乎完全消失,但它太紧了。
QFont f=text->font();
f.setStretch(50);
f.setLetterSpacing(QFont::AbsoluteSpacing,-0.3);
f.setWordSpacing(2);
text->setFont(f);
您还可以将其与自定义字母和单词间距相结合,这取决于您的情况以及它如何影响您的文本。
你可以看一下结果,差别还是蛮明显的。
之前:
之后:
注: