Qt字符串数据对比
参考文章:
https://blog.csdn.net/weixin_41882459/article/details/103417060
QTextCharFormat fmt;//文本字符格式 fmt.setForeground(QColor("red"));// 前景色(即字体色)设为color色 也可以设置背景色 QString str1 = ui->textEdit->toPlainText(); QTextCursor cursor = ui->textEdit->textCursor();//获取文本光标 QTextCursor cursor2 = ui->textEdit_2->textCursor();//获取文本光标 ui->textEdit->setFocus(); QString str2 = ui->textEdit_2->toPlainText(); for(int i = 0;i < str1.remove(QRegExp("\\s")).length()/2;i++) { //16进制标红 先去掉所有的空格 str.remove(QRegExp("\\s")); i=i+2 str2.remove(QRegExp("\\s")); qDebug()<<str1.mid(i,2)<<str2.mid(i,2); if(str1.mid(i*2,2)!=str2.mid(i*2,2)) { ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 cursor.setPosition(i*3,QTextCursor::MoveAnchor); cursor.setPosition(i*3+2,QTextCursor::KeepAnchor); cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 ui->textEdit_2->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 cursor2.setPosition(i*3,QTextCursor::MoveAnchor); cursor2.setPosition(i*3+2,QTextCursor::KeepAnchor); cursor2.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->textEdit_2->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 } //ASCII字符串标红 // if(str1.at(i) != str2.at(i)) // { // ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 // cursor.setPosition(i,QTextCursor::MoveAnchor); // cursor.setPosition(i+1,QTextCursor::KeepAnchor); // cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 // ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 // } }