我在Qt小部件QTextEdit,QPlainTextEdit等中遇到了一些我不想遇到的功能。我实际上不知道如何改变这个问题。
我想要加密一些文本,将一个unicode字符替换为另一个unicode字符,即使它是控制字符。
所以我用这种方式来识别一个简单的字符串:
var content = document.getElementById('title').children[0].innerHTML;
这些是通常的空间(0x20)和一些不寻常的无中断空间(0xA0)。在内存中,字符串是绝对完美的。但是,如果我将其设置为带有
QChar ch = (QChar)0x20;
QChar ch2 = (QChar)0xA0;
QString str; str.append(ch); str.append(ch2);
的QTextEdit文本,则此无中断空间(0xA0)将成为常用空间。我猜这是因为它们出于类似的目的,但我仍然想在TextEdit中获得No-Break Space字符,这样我就可以像在Notepad ++中那样复制它等等。
我怎么能改变这个?
答案 0 :(得分:0)
QTextEdit不接受非中断空间,为什么?我怎么能够 仍然使用Qt编辑控件的非中断空间?
问题是QTextEdit::plainText属性明确地阻止插入非中断空间并将其转换为空格字符。
plainText:QString
此属性获取文本编辑器的内容并将其设置为纯文本。 删除以前的内容,并在重置时重置撤消/重做历史记录 财产设定。
如果文本编辑具有其他内容类型,则不会替换为 如果您调用PlatinText(),则为纯文本。唯一的例外是 非中断空间,将转换为标准 空间。
建议:使用QTextEdit::setText。
如果它仍然执行了不需要的转换或者没有正确处理该符号,则需要通过在html标记的信封中插入包含QTextEdit::setText
的文本来
选择HTML形式的测试{ {1}}。