QSqlTableModel的dataChanged

问题描述:

我使用下面的命令在一个特定的表视图更新柱:QSqlTableModel的dataChanged

connect(sale,SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)),this,SLOT(calculateSALE(QModelIndex))); 

函数calculateSALE(QModelIndex),计算由QModelIndex指向的特定列几件事情。它工作完美,没有问题。

有一定的时间,我想打电话给calculateSALE(QModelIndex)直接在for()循环重新计算表中的所有列。我很困惑如何创建一个虚拟QModelIndex,我可以循环列号。

什么我想要做的是调用,这个函数:

void calculateSALE(QModelIndex colPosition); 

从程序中的其他地方。 这是我想要做的 PSUDO CODE:

QModelIndex a; 
a.column=3; 
calculateSALE(a): 
+0

是一个名为QSqlTableModel的销售。 – Dan3460

在这里,我回答我的问题。该解决方案是简单,没有任何与创建一个“假” QModelIndex调用的函数。

connect(sale,SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)),this,SLOT(calculateSALE(QModelIndex))) 

此功能是做对包含在QModelIndex特定列了一堆计算。问题是我想迭代这个函数来在某些场合一次更新所有的列。解决的办法是将所有的代码,我可以从任何地方在代码中调用一个函数可以说无效updateColumn(INT X)。然后我对槽的功能抓住从QModelIndex列,并调用这个新功能。