QT C++ QTableWidgetItem重复判断

现有一个TableWidget,可以直接编辑item的值,编辑后判断是否跟其他item的值重复,如果重复将背景设为红色。将红色的item更改后,若不重复就改为原始颜色。
我尝试用itemChanged信号来操作,但是发现在关联itemChanged的槽函数内更改了item背景颜色后又会触发一遍itemChanged信号。
求问此问题如何解!
感激不尽!

itemchanged信号触发条件很多,比如颜色改变、字体改变、内容改变等等,都会触发,处理方法是:
先需要判断数据是否发生变化,如果是是数据内容发生变化,再去处理,如果是其它变化触发的,则忽略。
参考:
QTableWidget信号itemChanged_小夜志的博客-CSDN博客 使用过itemchanged信号的肯定知道,即使没有对表格中的内容进行修改也会发送itemChanged信号,如果在循环判断语句中出现,那可能会造成死循环。对此只有使用间接的方法:首先创建一个标志flag为false。然后在ItemDoubleClicked信号槽中将此置为true,这样就说明已经对表格进行修改了,接着在itemChanged信号槽中对flag进行判断,false则返回,true则继续执行。当然这也是借鉴了别人的想法。... https://blog.csdn.net/qq_36284984/article/details/106057537

QTableWidget的itemChanged或cellChanged信号误触发解决方案_呼呼~²⁰¹⁷的博客-CSDN博客 QTableWidget的itemChanged或cellChanged信号触发,在进入槽函数之后,如果槽函数中对QTableWidget的单元格执行了某些操作(如修改单元格内数据,修改单元格字体颜色等)都会再次触发itemChanged或cellChanged信号然后去执行槽函数,会陷入无限循环。解决方案:1. 阻塞方法blockSignals在进入槽函数时,进入阻塞模式,这个对象发送的信号都会被阻塞;在退出槽函数前,解除阻塞,重新接受对象发送的信号;返回值为之前状态的阻塞情况。# 进入槽函数 https://blog.csdn.net/weixin_43928734/article/details/109673830