Russian Qt Forum
Ноябрь 06, 2024, 18:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обновление данных в QSqlRelationalTableModel  (Прочитано 2721 раз)
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???
« Последнее редактирование: Сентябрь 25, 2011, 10:41 от NetWorm » Записан
blood_shadow
Гость
« Ответ #1 : Сентябрь 25, 2011, 19:07 »

попробуй:
Код
C++ (Qt)
setEditStrategy(QSqlTableModel::OnFieldChange)
Записан
NetWorm
Гость
« Ответ #2 : Сентябрь 25, 2011, 20:26 »

хм... А где же это писать то??
Записан
blood_shadow
Гость
« Ответ #3 : Сентябрь 25, 2011, 21:07 »

хм... А где же это писать то??
в моделе
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.135 секунд. Запросов: 20.