无法访问QSqlQueryModel中的列值

时间:2014-04-30 20:22:39

标签: qt5 qtreeview

我在更改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

1 个答案:

答案 0 :(得分:0)

您正在对QSqlRecord rec进行操作;这是记录的复制而不是对它的引用。至于设置数据 - 参见model:setData function