ui->setupUi(this);
// Create the data model
model->setTable("people");
// Remember the indexes of the columns
genderIdx = model->fieldIndex("gender");
// Set the relations to the other database tables
model
->setRelation
(genderIdx,
QSqlRelation("gender",
"genderid",
"gender"));
// Populate the model
if (!model->select()) {
showError(model->lastError());
return;
}
//QSqlTableModel *relModel = model->relationModel(nameIdx);
// Set the model and hide the ID column
ui->personList->setModel(model);
ui->personList->setColumnHidden(0, true);
// Initialize the Combo Boxes
ui->nameCBox->setModel(model);
ui->nameCBox->setModelColumn(model->fieldIndex("name"));
ui->genderCBox->setModel(model->relationModel(genderIdx));
ui->genderCBox->setModelColumn(model->relationModel(genderIdx)->fieldIndex("gender"));
//Create Mapper
mapper->setModel(model);
mapper->addMapping(ui->nameCBox, model->fieldIndex("name"));
mapper->addMapping(ui->genderCBox, model->fieldIndex("gender"));
//*********************************************************//
connect(ui->insertButton, SIGNAL(clicked()),
this, SLOT(insertPerson()));
connect(ui->nameCBox, SIGNAL(currentIndexChanged(int)),
mapper, SLOT(setCurrentIndex(int)));
connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteRow()));
ui->nameCBox->setCurrentIndex(0);
mapper->setCurrentIndex(0);
ui->setupUi(this);
// Create the data model
model = new QSqlRelationalTableModel(ui->personList);
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->setTable("people");
model->setJoinMode(QSqlRelationalTableModel::LeftJoin);
// Remember the indexes of the columns
genderIdx = model->fieldIndex("gender");
// Set the relations to the other database tables
model->setRelation(genderIdx, QSqlRelation("gender", "genderid", "gender"));
// Populate the model
if (!model->select()) {
showError(model->lastError());
return;
}
//QSqlTableModel *relModel = model->relationModel(nameIdx);
// Set the model and hide the ID column
ui->personList->setModel(model);
ui->personList->setColumnHidden(0, true);
ui->personList->setSelectionMode(QAbstractItemView::SingleSelection);
// Initialize the Combo Boxes
ui->nameCBox->setModel(model);
ui->nameCBox->setModelColumn(model->fieldIndex("name"));
ui->genderCBox->setModel(model->relationModel(genderIdx));
ui->genderCBox->setModelColumn(model->relationModel(genderIdx)->fieldIndex("gender"));
//Create Mapper
QDataWidgetMapper *mapper = new QDataWidgetMapper(this);
mapper->setModel(model);
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
mapper->addMapping(ui->nameCBox, model->fieldIndex("name"));
mapper->addMapping(ui->genderCBox, model->fieldIndex("gender"));
//*********************************************************//
connect(ui->insertButton, SIGNAL(clicked()),
this, SLOT(insertPerson()));
connect(ui->nameCBox, SIGNAL(currentIndexChanged(int)),
mapper, SLOT(setCurrentIndex(int)));
connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteRow()));
ui->nameCBox->setCurrentIndex(0);
mapper->setCurrentIndex(0);
To copy to clipboard, switch view to plain text mode
Bookmarks