• 13022阅读
  • 7回复

[提问]QT中如何获取tableView当前鼠标所选中的行的内容并在lineEdit输出 [复制链接]

上一主题 下一主题
离线lykwly
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-30
已将tableiew转到槽 ,写了下面的代码
void MydataBaseDialog::on_tableView_clicked(const QModelIndex &index)

tablemodel=new QSqlTableModel ();    
QSqlRecord record=tablemodel->record(index.row());    
QString namestr=record.value("NAME").toString();    
ui->lineEdit_name->setText(namestr);  
qDebug()<<namestr;

但是lineedit没有显示
新人求解答 该如何去写

离线jdwx

只看该作者 1楼 发表于: 2013-03-30
回 楼主(lykwly) 的帖子
请楼主排排版,再把完整的槽函数的代码贴出来。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线alexltr

只看该作者 2楼 发表于: 2013-03-30
1. tablemodel=new QSqlTableModel ();   不应该放在这个槽函数里
2. QSqlTableModel要要setTable才有数据
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线hehuim

只看该作者 3楼 发表于: 2013-03-30
tablemodel和tableView都不匹配吧!tablemodel应该是要与tableView关联的model才行吧!
离线lykwly
只看该作者 4楼 发表于: 2013-03-30
回 2楼(alexltr) 的帖子
能具体说说该怎么写吗  我刚入门qt 对于tablemodel还在迷糊状态
离线alexltr

只看该作者 5楼 发表于: 2013-03-30
3楼正解

如果你的tableView已经与model关联,那你试一下这样行不行
void MydataBaseDialog::on_tableView_clicked(const QModelIndex &index)
{  
      QSqlRecord record=tableView->model()->record(index.row());    
     QString namestr=record.value("NAME").toString();    
     ui->lineEdit_name->setText(namestr);  
     qDebug()<<namestr;
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线zhou5749

只看该作者 6楼 发表于: 2016-07-23
使用qdatawidgetmapper
离线zhou5749

只看该作者 7楼 发表于: 2016-07-23
QDataWidgetMapper *mapper = new QDataWidgetMapper(this);
    mapper->setModel(mModel);
    mapper->addMapping(ui->idEdit, mModel->fieldIndex("id"));
    mapper->addMapping(ui->nameEdit, mModel->fieldIndex("name"));
    mapper->addMapping(ui->ageEdit,mModel->fieldIndex("age"));
    mapper->addMapping(ui->addressEdit,mModel->fieldIndex("address"));
    connect(ui->tableView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
            mapper, SLOT(setCurrentModelIndex(QModelIndex)));
快速回复
限100 字节
 
上一个 下一个