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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlRelationalTableModel->setData  (Прочитано 6906 раз)
UVV
Гость
« : Октябрь 04, 2007, 16:09 »

Дайте, пожалуйста, пример, как нужно использовать этот метод
Записан
dilshodm
Новичок

Offline Offline

Сообщений: 18


Просмотр профиля
« Ответ #1 : Октябрь 04, 2007, 19:13 »

Код:
QModelIndex index = model->index(row, column);
model->setData(index, QVariant("Какое-нить значение"));
model->submit(); // По необходимости, зависит от editStrategy()

Если данная колонка column является relational (т.е. показывает данные из другой таблицы), то надо вместо значения ставить индекс значения из той самой "другой" таблицы.
Записан

С уважением,
Dilshod
UVV
Гость
« Ответ #2 : Октябрь 04, 2007, 20:14 »

Если данная колонка column является relational (т.е. показывает данные из другой таблицы), то надо вместо значения ставить индекс значения из той самой "другой" таблицы.

В этом и получилась загвоздка.
Я правильно понимаю - нужно ставить id значения из другой таблицы?
Если я делаю так:
Код:
model->setData(index, 1);
то получаю просто "1", а не нужное мне значение!
Записан
UVV
Гость
« Ответ #3 : Октябрь 11, 2007, 06:01 »

Что подразумевается под "индексом значения из той самой "другой" таблицы"??
Записан
dilshodm
Новичок

Offline Offline

Сообщений: 18


Просмотр профиля
« Ответ #4 : Октябрь 11, 2007, 18:29 »

Цитировать
Я правильно понимаю - нужно ставить id значения из другой таблицы?
Именно.

Цитировать
Если я делаю так:
Код:

model->setData(index, 1);

то получаю просто "1", а не нужное мне значение!

Я только что проверил на стандартном примере:
4.3.2\examples\sql\relationaltablemodel\relationaltablemodel.cpp

там по умолчанию в первой строке выводит: ... Sam ... USA

вставил такой код (+):
Код:
    QTableView *view = createView(QObject::tr("Relational Table Model"), &model);
    view->show();
+ model.setData(model.index(0, 3), 47);
+ model.submitAll();
    return app.exec();

выводит ... Sam ... Norway
т.е. при установке 47 выводится  Norway.

Кстати, не забудь про submitAll(), иначе действительно будет выводить 47.
Записан

С уважением,
Dilshod
UVV
Гость
« Ответ #5 : Октябрь 13, 2007, 04:08 »


Кстати, не забудь про submitAll(), иначе действительно будет выводить 47.


В том то и дело, что submitAll() делать не надо, а надо остановиться на стадии tableView->edit(insertedIndex);
Записан
f0x
Гость
« Ответ #6 : Январь 16, 2008, 11:17 »

смотри исходники qsqlretationdelegate
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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