去年折腾的一个项目,其中的某个部分就是在一段文字中的重点突出某个符号,采用不同的字体和颜色,一开始我还不太明白,后来才开始理解了原来是要富文本显示,这块目前用QT实现,然后查了一些富文本的例子,QLabel控件是支持富文本显示的,只不过网上的一些基于正则表达式的例子不能对单个字符过滤,所以下面改进了一些,不多说了,直接上代码
QString strSupplement = QString::fromLocal8Bit("*夸奖人");
ui->lable_meal->setStyleSheet("color:black;");
if(!strSupplement.isEmpty())
{
// QRegExp valueRegExp(QString("(%1)").arg(QString::fromLocal8Bit("*")));
// valueRegExp.setCaseSensitivity(Qt::CaseInsensitive);
strSupplement = strSupplement.replace('*', "<font style='color:red;'>\*</font>");
}
ui->lable_meal->setText(strSupplement);
前面是关于正则的注释,后边是针对单个字符进行过滤。
然后基于字符的过滤方法是QString::replace功能,这个函数的功能很强大,比如我在表格中也可以嵌入这个功能,在对于QTableWidget的操作中,可能针对某个表单中的数据的某个特别字符