• 2681阅读
  • 2回复

请教一个QSqlTableModel更新的问题 [复制链接]

上一主题 下一主题
在线clickto
 

只看楼主 倒序阅读 楼主  发表于: 2017-12-24
我有一个QSqlTableModel和一个QTableView绑定,现在model里面关联的数据共有10列,我只需要显示8列,因此在view中使用ui->tableView->hideColumn(9);隐藏了显示,但是在新增记录时,这隐藏的列需要给他赋值,请问一下应该怎么做呢?
我尝试了如下:
        connect(ui->action_append,&QAction::triggered,this,[=](){
               if(model->insertRow(model->rowCount()))
               {
                       model->setData(model->index(model->rowCount(),9),QVariant("01"));
              });
还有model->record(model->rowCount()).setValue("unit",QVariant("01"));
这两个都没有效果,请高手帮忙!
离线黏过往的

只看该作者 1楼 发表于: 2017-12-24
试一下removeColumn(), 或者是你hideCloumn()后第9列已经不再是9列,可能是8或者......你这种情况是可以进行设置的,我以前也遇到过,多试几次看看。
在线clickto

只看该作者 2楼 发表于: 2017-12-24
我试过了,使用hide的话,第9列还是第9列。
而且,我使用record.setValue的使用列名的那个重载试过,如果是非隐藏的列,就可以更新,如果是隐藏的列,就没有效果。
现在就想着能不能知道怎样确定QSqlTableModel已经提交更新完数据库了,然后再手动更新相关隐藏字段。。。
快速回复
限100 字节
 
上一个 下一个