2015-11-28 279 views
0

我创建了一个QSqlTableModel,设置了一个过滤器并使用QTableView来显示我的过滤数据表。这工作正常...QSqlTableModel - 过滤器不工作?

model = new QSqlTableModel; 
model->setTable("XXX"); 
model->select(); 

model->setFilter(filter); 

table = new QTableView; 
table->setModel(model); 

然而,当我尝试计算在表视图中列的所有可见值的总和......

float sum = 0.0f; 
for(int i=0;i<model->rowCount();i++) 
    sum += model->record(i).value("amount").toFloat(); 

...我得到的表格模型中所有条目的总和,而不仅仅是那些在TableView(应用过滤器的地方)中可见的条目。

我该如何让我的sum()函数计算仅在TableView中可见的那些值的总和?

谢谢你的回答!

回答

0
model = new QSqlTableModel; 
model->setTable("XXX"); 

model->setFilter(filter); 

*model->select();//select after set filter* 

table = new QTableView; 
table->setModel(model);