i create a QTableView to show databases conten,and use some QLineEdits to eidit the record,i use the QDataWidgetMapper to connect the QSqlRelationalTableModel with the QLineEidt,i am wondering is there any ways to have this function that when i click the QTableView rows and the QLineEdit will show the relatived record.
Qt Code:
  1. QString address=projectAddress;
  2. address+="//";
  3. address+="Data";
  4. address+="//";
  5. address+="SystemData";
  6. address+=".db3";
  7.  
  8. if (!QFile::exists(address))
  9. {
  10. QMessageBox::information(this,tr("Information"),tr("There is something wrong with the wells databases"),QMessageBox::Ok,QMessageBox::Ok);
  11. }
  12.  
  13. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  14. db.setDatabaseName(address);
  15. db.open();
  16.  
  17.  
  18. welldatamodel = new QSqlRelationalTableModel;
  19. welldatamodel->setTable("wells");
  20. welldatamodel->setEditStrategy(QSqlTableModel::OnManualSubmit);
  21. welldatamodel->setSort(0,Qt::AscendingOrder);
  22.  
  23. //set header name
  24. welldatamodel->setHeaderData(0,Qt::Horizontal,tr("Name"));
  25. welldatamodel->setHeaderData(1,Qt::Horizontal,tr("Group"));
  26. welldatamodel->setHeaderData(2,Qt::Horizontal,tr("X"));
  27. welldatamodel->setHeaderData(3,Qt::Horizontal,tr("Y"));
  28. welldatamodel->setHeaderData(4,Qt::Horizontal,tr("Type"));
  29. welldatamodel->setHeaderData(5,Qt::Horizontal,tr("Production"));
  30. welldatamodel->setHeaderData(6,Qt::Horizontal,tr("Depth"));
  31. welldatamodel->setHeaderData(7,Qt::Horizontal,tr("BeginDepth"));
  32. welldatamodel->setHeaderData(8,Qt::Horizontal,tr("EndDepth"));
  33. welldatamodel->setHeaderData(9,Qt::Horizontal,tr("Altitude"));
  34.  
  35.  
  36. welldatamodel->select();
  37. welldatamodel->removeColumn(0);
  38.  
  39. wellTableView->setModel(welldatamodel);
  40. wellTableView->setSelectionBehavior(QAbstractItemView::SelectRows);
  41. // wellTableView->resizeColumnsToContents();
  42.  
  43. // wellTableView->horizontalHeader()->setStretchLastSection(true);
  44.  
  45. welldatamapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
  46. welldatamapper->setModel(welldatamodel);
  47. welldatamapper->setItemDelegate(new QSqlRelationalDelegate(this));
  48.  
  49. welldatamapper->addMapping(wellNameEdit,0);
  50. welldatamapper->addMapping(wellGroupEdit,1);
  51. welldatamapper->addMapping(wellXPositionEdit,2);
  52. welldatamapper->addMapping(wellYPositionEdit,3);
  53.  
  54. welldatamapper->addMapping(wellProductionEdit,5);
  55. /*welldatamapper->addMapping(wellDepthEdit,6);*/
  56. welldatamapper->addMapping(wellBeginDepthEdit,7);
  57. welldatamapper->addMapping(wellEndDepthEdit,8);
  58. welldatamapper->addMapping(wellAltitudeEdit,9);
  59.  
  60. //create connect of the buttons
  61. connect(firstAction,SIGNAL(triggered()),welldatamapper,SLOT(toFirst()));
  62. connect(lastAction,SIGNAL(triggered()),welldatamapper,SLOT(toLast()));
  63. connect(previousAction,SIGNAL(triggered()),welldatamapper,SLOT(toLast()));
  64. connect(nextAction,SIGNAL(triggered()),welldatamapper,SLOT(toNext()));
  65. //connect(addAction,SIGNAL(triggered()),welldatamapper,SLOT())
To copy to clipboard, switch view to plain text mode