要实现的效果是,在qtableWidget的item编辑完成时检验输入数据正确性,qtableWidget或qtableWidgetitem本身就没有editfinishing信号
问题1:想重新实现qtableWidget,重写其mousepressEvent。
使用qtablewidget时候,按tab键会在qtablewidgetItem间切换编辑,
我继承了该类,在双击编辑某item ,输入一些数据后,直接tab键,此时qtableWidget捕获不到keypress事件
其父窗口widget也捕获不到事件,这是撒回事,在qtableWidget和其父窗体的focusInEvent和focusOutEvent中分别都是grabKey和releaseKey
还是捕获不到keyPressEvent事件
问题2:使用qtableWidget的itemChanged信号
感觉这种方式很好,只有在item的数据发生变化时发送该信号,当我编辑完成后,鼠标按其他item时是发送了itemchanged信号,
在itemchanged信号对应的槽onItemChanged中
void onItemChanged(QTableWidgetItem *item)
{
tablewidget->editItem(item);//这里不起作用,因为当前的item已变成鼠标按的其他item了,不知撒的就编辑不了了,才有了一的尝试
}
到现在这两种方式都不是很好,待高手指点