QTextEdit更改特定某些行的字体格式
来源:互联网 发布:淘宝网豆豆鞋 编辑:程序博客网 时间:2024/06/05 09:51
在QT的显示过程中,往往会出于某种需要来改变特定某些行的输入格式,如下图,异常的情况下我希望异常信息以红色显示,但QTextEdit作为一个整体,往往改变了一个输入整体就都变了,比如说改变了字体颜色整个QTextEdit中的颜色都会发生改变。经过查询,用html可以实现如下图的效果,但是用html又有一个新的问题,就是中文显示的问题。在同学的帮助下,终于成功实现了利用html更改特定行的输入格式并显示图中的效果,现将代码做简单整理,或许对某些有同样需求的同行有所帮助。
关键代码只有三行,先给出代码后做解释:
QString tmpqstring1 = GBK::ToUnicode("<br/><span style='color:#FF4500;'>轻微波动</span><br/><br/>");string tmpstring1 = tmpqstring1.toStdString();ui.statusCollect->insertHtml(tmpstring1.c_str());注意,第一行的GBK是一个阿发老师写的一个编码格式转换的类(推荐其QT课程),ToUnicode就是将欲输入的转换为Unicode格式,放在头文件里引用就好了,具体代码最后给出。第一行中主要是html格式设置了颜色为红色,中文为“轻微波动”,第二行代码转为string类型,第三行取c_str()然后以html的格式插入到QTextEdit中去,这样就可以利用html在QTextEdit中某些特定行以特定格式显示中文了。我不太熟悉html,但是这样的确可以实现中文特定格式显示在QTextEdit中的特定位置。就是这么神奇!
#ifndef _QT_GBK_H#define _QT_GBK_H#include <QString>#include <QTextCodec>#include <string>using std::string;class GBK{public:// QString(Unicode) -> std::string (GBK)static string FromUnicode(const QString& qstr){QTextCodec* pCodec = QTextCodec::codecForName("gb2312");if(!pCodec) return "";QByteArray arr = pCodec->fromUnicode(qstr);string cstr = arr.data();return cstr;}// std::string (GBK) -> QString(Unicode)static QString ToUnicode(const string& cstr){QTextCodec* pCodec = QTextCodec::codecForName("gb2312");if(!pCodec) return "";/* 注: 如果pCodec为NULL, 则说明你的Qt安装位置不是默认位置,具体解决方法看Qt篇的《常见问题汇总》! */QString qstr = pCodec->toUnicode(cstr.c_str(), cstr.length());return qstr;}// QString(Unicode) -> std::string (GBK)static string w2a(const QString& qstr){return FromUnicode(qstr);}// std::string (GBK) -> QString(Unicode)static QString a2w(const string& cstr){return ToUnicode(cstr);}};#endif
阅读全文
0 0
- QTextEdit更改特定某些行的字体格式
- 如何更改终端字体的输出格式
- NPOI 创建 Excel 出错“此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。关闭其他文档再试一次可能有用。”
- NPOI 创建 Excel 出错“此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。关闭其他文档再试一次可能有用。”
- Html中超链接的字体颜色大小格式更改
- Qt设置QTextEdit和QLabel的字体颜色
- FontManager 给某个页面或某些控件更改字体
- 删除字符串中某些特定的字符
- 读取二进制文件特定位置的某些字节
- ITextSymbol字体的更改
- Word 2010更改默认字体格式
- 将带有特定字体颜色的单元格的行隐藏
- EasyUI datagrid对特定的某行某些字段打开编辑
- 构造特定格式的字符串
- Swing组件字体的更改
- 更改UIAlertAction的字体颜色
- 更改TabBar的字体颜色
- 打开有视频的文件夹~~当遇到某些特定的视屏格式就会出现Activemovie Window:Explorer.EXE-应用程序错误
- java 外部包jar 带包package 命令行编译运行
- opencv基本矩阵操作
- 有效的mysql优化sql语句查询的方法
- 静态库lib的编写
- 【jquery】适用Deferred实现jquery将请求封装成函数
- QTextEdit更改特定某些行的字体格式
- Spring Boot用浏览器关闭程序
- LeetCode周练Contest-35代码解析(C++)
- Android WebView 内容图片宽度自适应
- c语言综合实验 学生成绩管理系统
- BZOJ 2597: [Wc2007]剪刀石头布 费用流
- python科学计算--核心工具包一瞥(二)(win10 64位,numpy,scipy,pandas,seaborn,wordcloud安装)
- matlab之求向量中出现最多的元素和频率
- Java基本语法---枚举