PDA

View Full Version : QSqlRelationalTableModel not showing referenced table info as expected



graciano
1st May 2014, 21:05
Hi!
I'm using QSqlRelationalTableModel to get information from two related tables. The image shows the view used to manage data.
10330

This is the code for the model and the view:


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::OnFieldC hange);
model->setHeaderData(0, Qt::Horizontal, "Id");
model->setHeaderData(1, Qt::Horizontal, "Nome");
model->setHeaderData(2, Qt::Horizontal, "Localidade");
model->select();
return model;
}




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;
}


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:
10331