1 Attachment(s)
How to use QDataWidgetMapper to manage data is a QSqlTableModel
Hello!
Hi have this basic ui to manage data is a MySQL table:
Attachment 10091
The model/view approach works fine.
I'm trying now a "form" approach, using QDataWidgetMapper with the same model.
The model:
Code:
model->setTable("hobby");
model->setHeaderData(0, Qt::Horizontal, "ID");
model->setHeaderData(1, Qt::Horizontal, "Nome do passatempo");
model->select();
return model;
The QDataWidgetMapper:
Code:
void hobbyDialog::setupWidgetMapper()
{
mapper->setModel(model);
mapper->addMapping(ui->spinBoxIdHobby, 0);
mapper->addMapping(ui->lineEditNomeHobby, 1);
mapper->toFirst();
...
}
Using the tableView, in order no add new record i used:
Code:
void hobbyDialog::on_inserirUmRegisto_clicked()
{
// Inserir um registo
view->setFocus();
int row = model->rowCount();
model->insertRows(row,1);
QModelIndex index
= model
->index
(row, model
->fieldIndex
("idHobby"));
view->setCurrentIndex(index);
view->edit(index);
}
Now, using the form/QDataWidgetMapper, how do i manage the add new record?
Re: How to use QDataWidgetMapper to manage data is a QSqlTableModel
You code that adds a row only uses the model to do so, right?
So the same code should still add a row to the model.
Cheers,
_
Re: How to use QDataWidgetMapper to manage data is a QSqlTableModel
My code uses the view:
Code:
{
view = ui->tableView;
view->setModel(model);
//...
return view;
}
I tried this and it seems to work!
Code:
int row = model->rowCount();
model->insertRows(row,1);
mapper->setCurrentIndex(row);
I confess i was surprised ... in my mind this was supposed to be more complex:o