Обработка сигнала dataChanged QSqlTableModel

Модератор: Модераторы разделов

Ответить
chen
Сообщения: 8

Обработка сигнала dataChanged QSqlTableModel

Сообщение chen »

Доброго времени суток!
Столкнулся со странным на мой взгляд поведением:
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 ); , то вызывается.

В связи с этим вопросы: - Является ли нормальным такое поведение и если да, то почему?
- Как быть если необходимо сделать нечто при изменении данных?
Спасибо сказали:
Ответить