Qt
提供了一种强大的自适应方式来处理left-to-right
语言和right-to-left
语言文本,但是我在实现目标时遇到了问题。
图片1我想要得到的
图片2图片粘贴到我QTextEdit
的小部件时我得到了什么
图片3当我将文本方向设置为从左到右时,我得到了什么,如下所示:
QTextDocument *doc = ui->textEdit->document();
QTextOption textOption = doc->defaultTextOption();
textOption.setTextDirection(Qt::LeftToRight);
doc->setDefaultTextOption(textOption);
ui->textEdit->setDocument(doc);
使其从左到右对齐并不难,
但是结果与图1所示的有所不同。
图片4当我尝试向终端添加文本时得到的内容
我要实现的事实是,它像1号图片一样显示,
并且
当现有文本以阿拉伯符号结尾时,按键操作会将文本追加到终端。
总之,我想要的是,
无论是否包含从右到左的语言字符,它的行为都像从左到右的语言一样。
Unicode提供Directional Formatting Characters
并Qt
很好地支持它。这个想法来自@VahidN。我的问题部分通过这种方式解决了,现在它可以正确显示双向字符串了。
QString(QChar(0x200E))+strText; //LRM
QString(QChar(0x202D)) + strText + QString(QChar(0x202C)); //LRO...PDF
在此问题之前,我回答了另一个问题,这可能有助于您找到自己的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句