Qtablewidget编辑事件(判断是用户编辑而不是调用setData)

Qtablewidget编辑了某一个单元格后其他单元格数据根据该单元格的变化而计算显示,但是itemchanged里面通过setData设置其他单元格值的时候又会调用itemchanged本身,形成死循环,有其他办法吗

tableWidget的cellChanged信号,可以知道那个单元格被编辑了
connect(ui->tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(。。。));

调用setData的时候也会触发cellChanged,看来没有解决的办法,不过找到了一个曲线救国的方法

Qtablewidget编辑了某一个单元格后其他单元格数据根据该单元格的变化而计算显示(判断是用户编辑而不是调用setData)

我有个想法:

首先任然使用cellChanged,只是在槽函数中加一个标志位判断。
标志位flag首先初始化为false,用户在点击tablewidget时相应点击事件,将flag至为true,这样在槽函数判断这个flag就可以知道是不是用户点的tablewidget,若是,就执行你想要的动作,当然了动作执行完了flag还是要变为false(为了下次判断嘛)。

这样做咋样^_^

在setData()之前 disconnect()

初始化 disconnect, 在doubleclicked事件中连接,然后在itemchanged里在disconnect