[英]HTML inserted into QTextEdit does not conform to style sheet
我有一个停靠的QTextEdit,它用于在QT c ++ gui中模拟调试终端,并将其设置为带有白色文本的黑色背景。
我正在尝试使用它来打印来自QXmlSchemaValidator
错误消息,但是来自模式验证器的消息是html格式的,并且每当我将它们插入QTextEdit
,它都会恢复为默认字体,并且最终出现黑色文本黑色的背景。
实际的消息是这样的:
<html xmlns='http://www.w3.org/1999/xhtml/'>
<body>
<p>Content of element
<span class='XQuery-keyword'>minValue</span> does not match its type definition: <span class='XQuery-data'>fu</span> is not valid according to <span class='XQuery-type'>xs:decimal</span>..
</p>
</body>
</html>
使用setAcceptRichText(false)
不能解决问题,如果我使用insertPlainText()
将文本添加到lineEdit
,它将删除所有换行符,并将html标记lineEdit
在错误消息中,这是不可接受的。
有什么方法可以显示HTML RTF文本,但又不会丢失样式表字体?
我在计算机上进行了测试。 它运作完美。 用这个:
edit->setHtml(htmlDescription);
edit->selectAll();
edit->setTextColor(Qt::green);
//Ok, but clear selection
QTextCursor cur = edit->textCursor();
cur.clearSelection();
edit->setTextCursor(cur);
这有点麻烦,但是我要解决的方法是在将模式验证器消息中的HTML标记添加到文本编辑之前,将其删除。
QString errorMsg = msg.statusMessage().remove(QRegExp("<[^>]*>"));
textEdit->setText(errorMsg);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.