我在更改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
您正在对QSqlRecord rec进行操作;它是记录的副本,而不是对它的引用。至于设置数据,请参阅模型:setData函数