2

Qt提供了一种强大的自适应方式来处理left-to-right语言和right-to-left语言文本。但是我在处理我的目标时遇到了问题。


图片 No.1 我想得到什么
图片 1


图片 No.2粘贴到我QTextEdit的基础小部件时得到的图片 No.1 显示的内容
图像 2


Picture No.3 当我将文本方向设置为从左到右时得到的结果如下所示:

QTextDocument *doc = ui->textEdit->document();
QTextOption textOption = doc->defaultTextOption();
textOption.setTextDirection(Qt::LeftToRight);
doc->setDefaultTextOption(textOption);
ui->textEdit->setDocument(doc);

图片 3

使其从左到右对齐并不难,
但结果与第一张图片显示的不同。

图片 No.4 当我尝试将文本附加到终端时得到的结果
图片 4


我想要实现的事实是它像图片 1 一样显示,并且当现有文本以阿拉伯符号 
终止时,击键
使文本附加到终端。总之,我想要的是它的行为就像从左到右的语言一样, 无论它是否包含从右到左的语言字符。


4

1 回答 1

2

Unicode提供Directional Formatting CharactersQt很好地支持它。这个想法来自@VahidN。我的问题部分通过这种方式解决,现在它可以正确显示双向字符串

QString(QChar(0x200E))+strText; //LRM
QString(QChar(0x202D)) + strText + QString(QChar(0x202C)); //LRO...PDF

在这个问题之前,我回答了另一个问题,这可能有助于找到您自己的解决方案。

于 2014-12-26T07:08:48.893 回答