2017-07-28 99 views
-1

我使用下面的命令在一個特定的表視圖更新柱: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

回答

0

在這裏,我回答我的問題。該解決方案是簡單,沒有任何與創建一個「假」 QModelIndex調用的函數。

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

此功能是做對包含在QModelIndex特定列了一堆計算。問題是我想迭代這個函數來在某些場合一次更新所有的列。解決的辦法是將所有的代碼,我可以從任何地方在代碼中調用一個函數可以說無效updateColumn(INT X)。然後我對槽的功能抓住從QModelIndex列,並調用這個新功能。