光标逐个向后移动进行判断并控制不同字体显示:
效果如下:
具体实现:
TextDocument *document = ui->textEdit->document();
QTextBlock ¤tBlock = document->begin();
QTextBlock::iterator it;
QTextCursor cursor = ui->textEdit->textCursor();
QPalette pa = ui->textEdit->palette();
pa.setColor(QPalette::Text,QColor("#392300"));
ui->textEdit->setPalette(pa);
//回复正常状态
QPalette pal = ui->textEdit->palette();
pal.setColor(QPalette::Text, QColor(Qt::black));
ui->textEdit->setPalette(pal);
while (true)
{
// 在修改chatformat时会改变当前Block的fragment
// 所以++it的处理类似std::map中的erase操作
for (i