繁体   English   中英

插入QTextEdit的HTML不符合样式表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM