graciano
1st May 2014, 20: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
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