我遇到了我不想遇到的qt小部件qtextedit,qplaintextedit等。我实际上不知道如何更改此问题。
我想用一些文本来构图,将一个Unicode字符替换为另一个Unicode字符,即使它是控制的。
所以我以这种方式来弄清一个简单的字符串:
QChar ch = (QChar)0x20;
QChar ch2 = (QChar)0xA0;
QString str; str.append(ch); str.append(ch2);
这些是通常的空间(0x20)和一些不寻常的无破坏空间(0xa0)。在内存中,弦绝对是完美的。但是,如果我将其设置为具有ui->txt_ciphered->setPlainText(str);
的QTEXTEDIT文本,则此不突破空间(0xa0)成为通常的空间。我想那是因为它们是出于某些类似的目的,但我仍然想在Textedit中获得无破的空间字符,以便我可以复制它等。
我该如何更改?
QTEXTEDIT不接受非破裂空间,为什么?我怎么能够 仍在使用QT编辑控件的非断点空间?
问题在于qtextedit :: plaintext属性表达了防止非断裂空间被插入并将其转换为仅空间字符。
明文:QString
此属性获取并将文本编辑器的内容设置为纯文本。 删除了以前的内容,并在 设置属性。
如果文本编辑具有另一种内容类型,则不会替换 纯文本如果您调用toplaintext()。唯一的例外是 非破裂空间NBSP;,将转换为标准 空间。
建议:使用qtextedit :: setText。
如果它仍然进行不需要的转换或不正确处理该符号,则需要在html标签或 <html>My text</html>
的信封中插入包含
的文本来选择QTextEdit::setText
的HTML测试形式。