QTextBrowser显示 html,text 文件内容

不同qt版本的路径写法,好像不同。不过有错误提示,自己修改,即可。

setHtml
QFile file(":/file/UserAgreement.html");

    if(!file.open(QFile::ReadOnly | QFile::Text))
 
        QMessageBox::information(NULL, QStringLiteral("提示"),
 
                                 QStringLiteral("打不开用户协议文件"));
 
    QTextStream textStream(&file);
 
    ui->textBrowser->setHtml(textStream.readAll());
setText

ui->textBrowser->setText(textStream.readAll());

下面是从Qt 5 自动生成 默认 source拷贝出来的文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta name="qrichtext" content="1" />
<style type="text/css">p, li { white-space: pre-wrap; }</style>
</head>
<body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;">
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>


</body>
</html>

似乎:

QTextBrowser :内置了一个富文本编辑器,在“Rich Text”标签下编辑富文本,同时,在“source”标签中生成 html。因此,它产生的应该是一种裁剪版,精简版的 html文件。?

( Qt5对 html的支持,似乎只是支持部分html标签,因此,不是什么样的 html都能够正确显示?

使用 html的好处多:html成熟,自定义字体设置方便,以及其他等等。)

对策:

在 Qt内置“Rich Text”下进行初步编辑;

在“source”下拷贝出初步生成的 html内容;

在其他编辑器中作进一步的修改;

然后,再逆向返回进行验证。

即可获得独立的、符合 Qt规范的html文件?

或者用md编辑器转为 html文件来使用?

思考:

当需要多个QTextBrowser来显示不同数据的时候,

一种做法是用 Qt设计师生成多个 ui界面文件,包含cpp和h。缺点:同类 ui文件多。

另一种做法是,使用:setHtml
  • 这种方法的好处:只有一套 ui类文件(ui/cpp/h)。缺点:需要手动生成多个独立的 html文件。优点:代码维护方便。

  • 在 ui设计师的“Rich Text”标签下编辑富文本,然后,在“source”标签下将 html代码拷贝出来,另外保存为一个独立的文件。

  • 在需要使用的代码处,使用setHtml。

  • 注意:此时,不再需要考虑使用 setText(因为它不能产生复杂的“富文本”形式/格式/表现),只需要考虑使用 setHtml就足够了。

  • 缺点:在修改时,需要将 html文件,采用逆向步骤拷贝回到 Qt内置的富文本编辑器中进行重新修改。

做法1和做法2,需要寻求一种平衡。只有2个左右的同类ui QTextBrowser 时,采用做法1,方便。

否则,采用做法2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值