Доброго времени суток!
Столкнулся со странным на мой взгляд поведением:
1) Создаю модель, устанавливаю стратегию:
QSqlTableModel* model = new QSqlTableModel (this, QSqlDatabase::database("db_name") );
model->setEditStrategy ( QSqlTableModel::OnFieldChange );
2) Навешиваю обработчик сигнала dataChanged:
connect(model, SIGNAL(dataChanged( const QModelIndex&, const QModelIndex& )), this, SLOT(OnDataChanged(const QModelIndex&, const QModelIndex& )));
void My_class::OnDataChanged(const QModelIndex&, const QModelIndex& )
{
qDebug("Data changed");
}
Так вот OnDataChanged не вызывается
Если убрать model->setEditStrategy ( QSqlTableModel::OnFieldChange ); , то вызывается.
В связи с этим вопросы: - Является ли нормальным такое поведение и если да, то почему?
- Как быть если необходимо сделать нечто при изменении данных?
Обработка сигнала dataChanged QSqlTableModel
Модератор: Модераторы разделов