我正在使用QTableWidget来显示和编辑数据矩阵。为了验证目的,我使用QLineEdit作为此表中的项目。作为继,何时在QTableWidget中触发cellChanged信号?
pTable=new QTableWidget(N,N,this);
pItem=new QLineEdit();
pItem->setText(tr("%1").arg(pInfra->adjacencyM(i,j)));
rx=new QRegExp("0|1");
validatorRegexp=new QRegExpValidator(*rx,0);
pItem->setValidator(validatorRegexp);
pTable->setCellWidget(i,j,pItem);
因为我想知道,如果在某小区的数据已经改变,所以我尝试cellChanged(INT,INT)信号,并将它与我自己的插槽cellEdited(INT,INT)连接,如同这
connect(pTable,SIGNAL(cellChanged(int,int)),this, SLOT(cellEdited(int,int)));
但是,当我编辑单元格中的QLineEdit,我无法捕捉到这个信号。这个信号何时会被解雇?或者我可以使用另一个信号或以其他方式来做到这一点? 谢谢!
不知道这个问题的原因。考虑另一种方法。您可以捕获'QLineEdit'信号'textChanged'并使用[QSignalMapper](http://doc.trolltech.com/latest/qsignalmapper.html)将每个'QLineEdit'触发的信号绑定到特定的信元编号。也许它不是最好的解决办法,但是如果这个问题不能解决,你可以使用它。 – beduin 2011-05-05 04:30:37
谢谢beduin,我使用了QSignalMapper,它效果很好。 – 2011-05-05 19:09:56
不客气。我已经发布了它作为答案 - 你可以接受它) – beduin 2011-05-05 19:49:00