[Qt-interest] QDataWidgetMapper, QSqlTableModel and AutoSubmit
Wilhelm
wilhelm.meier at fh-kl.de
Mon Oct 11 18:07:35 CEST 2010
Hi,
I found a strange behaviuor with QDataWidgetMapper:
The first time I edit a field value with the widget (QLineEdit) the
column is mapped to, the model gets updated (e.g. the QTableView gets
this new value). When I modifiy the field a second time, nothing happens!
And further: if I edit the field value in the QTableView, the mapped
widget gets not updated.
Any hints?
-
Widget::Widget(QWidget *parent)
: QWidget(parent) {
QVBoxLayout* l = new QVBoxLayout(this);
QTableView* tv = new QTableView(this);
l->addWidget(tv);
QSqlTableModel* tm = new QSqlTableModel(this);
tm->setEditStrategy(QSqlTableModel::OnFieldChange);
tm->setTable("vorgang");
tm->setHeaderData(0, Qt::Horizontal, tr("id"));
tm->setHeaderData(1, Qt::Horizontal, tr("Start"));
tm->setHeaderData(2, Qt::Horizontal, tr("End"));
if (!tm->select()) {
qDebug() << "select nok";
}
tv->setModel(tm);
tv->resizeColumnsToContents();
tv->setItemDelegateForColumn(1, new Delegate(this));
l->addWidget(new QLabel("Vorgang"));
QLineEdit* le = new QLineEdit(this);
l->addWidget(le);
QDataWidgetMapper* mapper = new QDataWidgetMapper(this);
mapper->setModel(tm);
mapper->addMapping(le, tm->fieldIndex("beschreibung"));
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
mapper->toFirst();
}
--
Wilhelm
More information about the Qt-interest-old
mailing list