Russian Qt Forum

Qt => Model-View (MV) => Тема начата: NetWorm от Сентябрь 25, 2011, 10:39



Название: Обновление данных в QSqlRelationalTableModel
Отправлено: NetWorm от Сентябрь 25, 2011, 10:39
Здравствуйте Други! Есть такое дело...

Есть модель QSqlRelationalTableModel - это Model и sprTable - это TableView

Код:
    
    ui->sprTable->setModel(Model);
    ui->sprTable->setColumnHidden(2,true);
    ui->sprTable->setColumnWidth(0,40);
    ui->sprTable->setColumnWidth(1,300);

    ui->sprTable->setItemDelegateForColumn(3,del);

del - это делегат который создает комбобокс при нажатии на поле он заполняется при создании единицами измерения...
Этот код возвращает значение в таблицу.
Код:
void BoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const{
    QComboBox *ComboBox = static_cast<QComboBox*>(editor);
    int value = ComboBox->itemData(ComboBox->currentIndex()).toInt();
    model->setData(index, value, Qt::EditRole);
}


Все проходит здорово.... Но данные не фиксируются в базе пока не нажмешь enter на соответствующей ячейке редактирования....

т.е. каким образом делать фиксацию данных при выборе значения, а не при нажатии на enter???


Название: Re: Обновление данных в QSqlRelationalTableModel
Отправлено: blood_shadow от Сентябрь 25, 2011, 19:07
попробуй:
Код
C++ (Qt)
setEditStrategy(QSqlTableModel::OnFieldChange)


Название: Re: Обновление данных в QSqlRelationalTableModel
Отправлено: NetWorm от Сентябрь 25, 2011, 20:26
хм... А где же это писать то??


Название: Re: Обновление данных в QSqlRelationalTableModel
Отправлено: blood_shadow от Сентябрь 25, 2011, 21:07
хм... А где же это писать то??
в моделе