QSqlTableModel dataChanged

时间:2017-07-28 14:58:09

标签: qt

我使用以下命令更新特定表视图上的列:

startup

函数 calculateSALE(QModelIndex),计算QModelIndex指向的特定列上的几个内容。它完美无缺,没有任何问题。

有些时候我想直接在for()循环中调用calculateSALE(QModelIndex)来重新计算表中的所有列。我很困惑如何创建一个虚拟QModelIndex,我可以循环列号。

我想做的是打电话,这个功能:

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

来自该计划的其他地方。 这是我想做的PSODO代码

void calculateSALE(QModelIndex colPosition);

1 个答案:

答案 0 :(得分:0)

我在这里回答我自己的问题。解决方案很简单,与创建“假”QModelIndex无关,无需调用该函数。

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

此函数正在对QModelIndex中包含的特定列进行一系列计算。问题是我想迭代这个函数在某些情况下立即更新所有列。解决方案是将所有代码移动到我可以从代码中的任何地方调用的函数,让我们说void updateColumn(int x)。然后我让插槽上的函数从QModelIndex中获取列并调用这个新函数。