Hi!
I'm using QSqlRelationalTableModel to get information from two related tables. The image shows the view used to manage data.
question.png
This is the code for the model and the view:
{
model->setTable("pessoa");
model
->setRelation
(model
->fieldIndex
("Pessoa_idLocalidade"),
QSqlRelation("localidade",
"idLocalidade",
"nomeLocalidade"));
model
->setRelation
(model
->fieldIndex
("Pessoa_idHobby"),
QSqlRelation("hobby",
"idHobby",
"nomeHobby"));
model->setHeaderData(0, Qt::Horizontal, "Id");
model->setHeaderData(1, Qt::Horizontal, "Nome");
model->setHeaderData(2, Qt::Horizontal, "Localidade");
model->select();
return model;
}
QSqlRelationalTableModel* pessoaDialog::setupModel()
{
QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this, QSqlDatabase::database("connection1"));
model->setTable("pessoa");
model->setRelation(model->fieldIndex("Pessoa_idLocalidade"), QSqlRelation("localidade", "idLocalidade", "nomeLocalidade"));
model->setRelation(model->fieldIndex("Pessoa_idHobby"), QSqlRelation("hobby", "idHobby", "nomeHobby"));
model->setEditStrategy(QSqlRelationalTableModel::OnFieldChange);
model->setHeaderData(0, Qt::Horizontal, "Id");
model->setHeaderData(1, Qt::Horizontal, "Nome");
model->setHeaderData(2, Qt::Horizontal, "Localidade");
model->select();
return model;
}
To copy to clipboard, switch view to plain text mode
{
view = ui->tableView;
view->setModel(model);
view->horizontalHeader()->setSectionsMovable(true);
return view;
}
QTableView* pessoaDialog::setupView()
{
view = ui->tableView;
view->setModel(model);
view->setItemDelegateForColumn(2, new QSqlRelationalDelegate(view));
view->setItemDelegateForColumn(3, new QSqlRelationalDelegate(view));
view->horizontalHeader()->setSectionsMovable(true);
return view;
}
To copy to clipboard, switch view to plain text mode
When i'm inserting data (see the attached image), the view shows the the PK value(idLocalidade or idHobby) instaed of the related info (nomeLocalidade or nomeHobby).
As soon as i submit the data, it is shown correctly!
How can i change this?
Thanks
The EER Diagram:
eerdiagram.png
Bookmarks