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:
相关文章推荐
- 使用Qt开发绘制多个设备的流量曲线图(附带项目图)
- Qt:在widget的外部进行绘制带有坐标轴的图像
- Qt界面设计总结
- QT透明窗体子窗体显示
- [转]QTCreator + MSVC10编译器 使用boost::filesystem 时 error LNK2019: codecvt ... 问题的解决
- Qtcreator常用快捷键
- Qt中的布局
- QT 环境下开发socketCan接口程序
- Qt从零开始制作串口调试助手-(第十三章、其他功能完善)-Creator_Ly
- Qt5程序的发布
- qt+opencv 实现光流检测
- QT+VS2010配置
- QT 关闭主窗口时触发关闭所有打开的其他窗口
- Qt之SQL数据库
- QTP 继续使用
- qt中使用mysql报没有mysql驱动错误的解决方案
- ubuntu下Qt Creator使用遇到的错误汇总(持续更新)
- QT中的QRegExp学习(正则表达式)
- VS+QT实现语言自动切换
- Qt打包生成exe