将QString转换为带有HTML特殊字符替换的文本(例如标签)

时间:2013-06-04 09:38:48

标签: html qt htmlspecialchars qtextedit richtext

用户可以在Qt环境中将一些文本放入QLineEdit。但是,这些输入文本可以包含HTML特殊字符。我的目标是通过用替换替换所有HTML特殊字符来转换此文本。

在PHP中使用htmlspecialchars()函数http://php.net/manual/en/function.htmlspecialchars.php可以找到类似的情况。

我想要这样做的主要原因是因为我想在richtext QTextEdit中显示用户输入,我不希望用户能够更改HTML,我希望能够使用HTML特殊字符麻烦太多了。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

我知道最简单的方法是使用QTextEdit::toHtml

QString convert();
{
    QString s = lineEdit->text();
    QTextEdit textEdit;
    textEdit.setPlainText(s);
    QString ret = textEdit.toHtml();
    int firstClosingTag = ret.indexOf("</p></body></html>");
    int lastOpeningTag = ret.lastIndexOf(">", firstClosingTag);
    return ret.mid(lastOpeningTag + 1, firstClosingTag - lastOpeningTag - 1);
}

还有两个功能,你会觉得很有用:

Qt::convertFromPlainText()Qt::escape()