Qt
提供了一种强大的自适应方式来处理 left-to-right
语言和 right-to-left
语言但是我遇到了处理目标的问题。
图片1我想要的东西
图片No.2当粘贴到我基于QTextEdit
的小部件时,我得到了什么图片#1显示
图片No.3当我将文字方向设置为从左到右时,我得到了什么,如下所示:
QTextDocument *doc = ui->textEdit->document();
QTextOption textOption = doc->defaultTextOption();
textOption.setTextDirection(Qt::LeftToRight);
doc->setDefaultTextOption(textOption);
ui->textEdit->setDocument(doc);
Making it left-to-right aligned is not that hard,
but the result differs from what picture no.1 shows.
图片No.4当我尝试将文本附加到终端时我得到了什么
What I want to achieve is the fact that it shows like picture no.1 does,
and key-strikes make texts appended to the terminal
when the existting texts is terminated by a Arabic notation.
In a word,all I want is that it behave like left-to-right languages do
whether it contains right-to-left language characters or not.
答案 0 :(得分:1)
Unicode提供 Directional Formatting Characters
, Qt
支持它。想法来自@ VahidN.My问题部分通过这种方式解决,现在它正确显示双向字符串。
QString(QChar(0x200E))+strText; //LRM
QString(QChar(0x202D)) + strText + QString(QChar(0x202C)); //LRO...PDF
在回答这个问题之前,我回答了another one,这可能有助于找到自己的解决方案。