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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlQueryModel::setData  (Прочитано 7295 раз)
crossly
Гость
« : Ноябрь 13, 2008, 14:30 »

вопрос.... почему при OnFieldChanged модель не эмитирует dataChaged при вызове setData Непонимающий
при остальных стратегиях эмит есть...
как мне в таком случает отследить вставку значения...??
Записан
BRE
Гость
« Ответ #1 : Ноябрь 13, 2008, 14:50 »

вопрос.... почему при OnFieldChanged модель не эмитирует dataChaged при вызове setData Непонимающий
при остальных стратегиях эмит есть...
как мне в таком случает отследить вставку значения...??
Та наверное имел ввиду QSqlTableModel?

При этой стратегии изменения сразу заносятся в базу данных и из функции updateRowInTable(...) зовется сигнал beforeUpdate ( int row, QSqlRecord & record ).

P.S. updateRowInTable зовется из setData.
Записан
crossly
Гость
« Ответ #2 : Ноябрь 13, 2008, 14:56 »


При этой стратегии изменения сразу заносятся в базу данных и из функции updateRowInTable(...) зовется сигнал beforeUpdate ( int row, QSqlRecord & record ).


это то я и сам знаю.... исходники смотрел.... вопрос в том как узнать о том что данные в базу записались...??
Записан
BRE
Гость
« Ответ #3 : Ноябрь 13, 2008, 15:03 »


это то я и сам знаю.... исходники смотрел.... вопрос в том как узнать о том что данные в базу записались...??
setData вернет true.
Записан
crossly
Гость
« Ответ #4 : Ноябрь 13, 2008, 15:04 »

лана попробую обяъснить по другому... есть у меня модель (стратегия onfieldchanged)... и treewidget... мне по изменении модели нужно обновить treewidget....
Записан
BRE
Гость
« Ответ #5 : Ноябрь 13, 2008, 15:22 »

лана попробую обяъснить по другому... есть у меня модель (стратегия onfieldchanged)... и treewidget... мне по изменении модели нужно обновить treewidget....
А почему выбрана именно эта стратегия?
Я так понимаю, что ее сделали для случая, когда пользователь изменяет значение в ячейке таблицы и переходит на другую ячейку, тогда эти изменения просто фиксируются в базе, обновления таблицы не требуется.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Ноябрь 13, 2008, 15:28 »

treeview? представление, а не виджет?
Записан

Юра.
crossly
Гость
« Ответ #7 : Ноябрь 13, 2008, 15:38 »

модель отображается ч\з tableview... treewiget отдельно....
Записан
BRE
Гость
« Ответ #8 : Ноябрь 13, 2008, 15:53 »

модель отображается ч\з tableview... treewiget отдельно....
Как вариант унаследоваться от QSqlTableModel и переопределить setData()

Код:
bool SqlTableModel::setData(...)
{
bool ret = QSqlTableModel::setData( ... );
if( ret )
emit dataChanged( index, index );
return ret;
}
Записан
crossly
Гость
« Ответ #9 : Ноябрь 13, 2008, 16:10 »

это всем известный вариант... лана тему в топку....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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