我在更改QTableView单元格中的值时遇到了一些问题。
ui->search_results->show();
int num = model->rowCount();
for (int i = 0; i<num; i++) {
QSqlRecord rec = model->record(i);
QString file_chron = rec.value(1).toString();
QString file_age = get_file_agestring_from_chron(file_chron);
//model->setData(model->index(i,1), QVariant(file_age), Qt::EditRole);
rec.setValue(1,file_age);
似乎两个函数在循环中都能正常工作
qDebug()<<rec.value(1).toString()+" "+rec.value(2).toString()+" "+rec.value(3).toString()+" "+rec.value(4).toString()+" "+rec.value(5).toString();
}
但在外面,我们有旧的价值。
qDebug()<<model->data(model->index(3,1)).toString();
ui->search_results->setModel(model);
ui->search_results->hideColumn(4);
我需要重新实现此字段内的值。
我认为这是访问错误,但我无法理解如何设置新值!
抱歉,我无法添加标签QSqlQueryModel答案 0 :(得分:0)
您正在对QSqlRecord rec进行操作;这是记录的复制而不是对它的引用。至于设置数据 - 参见model:setData function