您的位置:首页 > 编程语言 > Qt开发

QTextEdit/QTextBrowser添加彩色文字与图片

2015-12-03 00:27 561 查看
QTextEdit/QTextBrowser支持Html4。当insertPlainText不能满足你的需求的时候,可以试试用Html来添加显示的内容。这几介绍大家常用的彩色文字,和添加图片。

一、添加彩色文字。

1.由于html的特性,会导致一些特殊字符不能显示,例如用于标记的‘<’‘>’、空格,换行等。所以第一步需要对待添加的QString进行转化,转化成html支持的文本方式。使用如下函数:

voidstringToHtmlFilter(QString&str)

{

//注意这几行代码的顺序不能乱,否则会造成多次替换

str.replace("&","&");

str.replace(">",">");

str.replace("<","<");

str.replace("\"",""");

str.replace("\'","'");

str.replace(""," ");

str.replace("\n","<br>");

str.replace("\r","<br>");

}

2.根据html标记语言,将QString转化。

voidstringToHtml(QString&str,QColorcrl)

{

QByteArrayarray;

array.append(crl.red());

array.append(crl.green());

array.append(crl.blue());

QStringstrC(array.toHex());

str=QString("<spanstyle=\"color:#%1;\">%2</span>").arg(strC).arg(str));

}

3.尽情使用转换成功后的QString吧。

例如在你的TextBrowser中添加如下彩色文字。

QStringstr("<HelloQt!>\n");

QColorclrR(255,0,0);

stringToHtmlFilter(str);

stringToHtml(str,clrR);

m_TextBrowser->insertHtml(str);

二、添加图片

1.由于图片没有特殊字符的问题,所以实现起来很容易。先使用如下函数将图片路径转换为html

voidimgPathToHtml(QString&path)

{

path=QString("<imgsrc=\"%1\"/>").arg(path);


}

2.在你的TextBrowser中添加html

//这里的path既可以是qrc路径,也可以是本地路径

QStringimgPath=QString("D:/img/hello.png");

imgPathToHtml(imgPath);

m_TextBrowser->insertHtml(imgPath);


PS:有了以上准备,我的iCute多功能串口调试助手就可以升级了,修复之前使用彩色文字后,特殊字符无法显示的问题。

修复自动发送,与发送后清空矛盾的问题。

添加发送接收计数功能。

新版本即将推出,敬请期待。


from:http://blog.sina.com.cn/s/blog_9da24f3b0101jz1w.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: