在QT的显示过程中,往往会出于某种需要来改变特定某些行的输入格式,如下图,异常的情况下我希望异常信息以红色显示,但QTextEdit作为一个整体,往往改变了一个输入整体就都变了,比如说改变了字体颜色整个QTextEdit中的颜色都会发生改变。经过查询,用html可以实现如下图的效果,但是用html又有一个新的问题,就是中文显示的问题。在同学的帮助下,终于成功实现了利用html更改特定行的输入格式并显示中午的效果,现将代码做简单整理,或许对某些有同样需求的同行有所帮助。
关键代码只有三行,先给出代码后做解释:
QString tmpqstring1 = GBK::ToUnicode("轻微波动
");
string tmpstring1 = tmpqstring1.toStdString();
ui.statusCollect->insertHtml(tmpstring1.c_str());注意,第一行的GBK是一个
阿发老师写的一个编码格式转换的类(推荐其QT课程),ToUnicode就是将欲输入的转换为Unicode格式,放在头文件里引用就好了,具体代码最后给出。第一行中主要是html格式设置了颜色为红色,中文为“轻微波动”,第二行代码转为string类型,第三行取c_str()然后以html的格式插入到QTextEdit中去,这样就可以利用html在QTextEdit中某些特定行以特定格式显示中文了。我不太熟悉html,但是这样的确可以实现中文特定格式显示在QTextEdit中的特