Qt-interest Archive, June 2007
Problem with QSqlRelationalTableModel
Message 1 in thread
Hello
I have a problem with QSqlRelationalTableModel, and I think
it may be a bug. I have subclassed the class previously
mentioned. The constructor is:
ComplementModel::ComplementModel(int id, QObject *parent) :
QSqlRelationalTableModel(parent), idses(id)
{
setTable("complements");
setEditStrategy(QSqlTableModel::OnFieldChange);
setRelation(3, QSqlRelation("concepts", "idconc", "concept"));
setHeaderData(3, Qt::Horizontal, QObject::tr("Head1"));
setHeaderData(4, Qt::Horizontal, QObject::tr("Head2"));
setHeaderData(5, Qt::Horizontal, QObject::tr("Head3"));
setHeaderData(6, Qt::Horizontal, QObject::tr("Head4"));
setFilter(QString("idses=%1").arg(idses));
setSort(1, Qt::AscendingOrder);
select();
}
All seems to work fine except that I can't navigate with the TAB key.
I've done some research and it seems that the problem is in the sentence:
setEditStrategy(QSqlTableModel::OnFieldChange);
If I replace QSqlTableModel::OnFieldChange with QSqlTableModel::OnManualSubmit
I can navigate but I can't save the data in the database.
I've tried something like:
bool ComplementModel::setData(const QModelIndex & index,
const QVariant &value, int role)
{
bool ok = QSqlRelationalTableModel::setData(index, value, role);
submitAll();
return ok;
}
But then, I can't navigate either.
Some suggestion?
Thanks in advance
--
[ signature omitted ]