【发布时间】:2011-03-29 03:59:45
【问题描述】:
就编码工作而言,更改 Qt4 小部件的文本属性最简单的方法是什么,例如QLabel.text,所以所有的HTML标签都被删除了?
HTML 很简单,通常只有一到三个标签,例如 or 及其关闭伙伴。
【问题讨论】:
就编码工作而言,更改 Qt4 小部件的文本属性最简单的方法是什么,例如QLabel.text,所以所有的HTML标签都被删除了?
HTML 很简单,通常只有一到三个标签,例如 or 及其关闭伙伴。
【问题讨论】:
如果您不想为此使用小部件,可以使用QTextDocument::toPlainText()
QTextDocument doc;
doc->setHtml(htmlText);
doc->toPlainText();
【讨论】:
我以前用过这个,虽然这个小部件看起来有点过分了。 QtextEdit,富文本编辑块。使这项工作有效的原因是构造函数假定字符串具有标签。
QTextEdit htmlText(HtmlText); // HtmlText is any QString with html tags.
QString plainText = htmlTextEdit.toPlainText();
【讨论】:
听起来您实际上只是在寻找一种从字符串中去除 HTML 标记的方法,该字符串不是 Qt 小部件特有的(除非您想要一个可以利用 Qt 库的其余部分的解决方案)。无论如何,在搜索“从字符串中剥离 html”时,似乎不乏点击量。似乎有两种通用方法:
您可能会找到一个足以满足您的目的的正则表达式,但您需要一个适当的 html 解析器才能正确完成。
这个 stackoverflow question 有很多关于正则表达式选项的讨论(尽管问题是要去除所有标签 except 链接)。
由于您使用的是 Qt,this question 有一个答案,其中包含使用该库中的解析器的示例。
【讨论】:
为什么不深入了解 QTextEdit::toPlainText() 源代码,看看那里做了什么?
【讨论】: