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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: смена таблицы в модели и не отображения данных в предсталении  (Прочитано 3552 раз)
nono
Гость
« : Апрель 26, 2011, 22:08 »

У меня возникла следующая проблема:
Я создал таблицу QTableView и установил в ней модель QSqlRalationalTableModel, после при выборе таблицы я устанавливаю в модель определенную таблицу (при чем таблица в модели меняется т. е. одна модель работает с разными таблицами) приведу небольшой пример:

   QTableView *table = new QtableView(this);
   QSqlRelationalTableModel *model = QsqlRelationalTableModel(this);
   table->setModel(model);
   …
   определенный код
   …
   в зависимости от условия устанавливаю таблицу
   switch (value) {
      case a:
         model->setTable(«table-a»);
         break;
      case b:
         model->setTable(«table-c»);
         break;
      …
   }

Вот теперь в таблице ничего не отобразиться!
Подскажите пожалуйста чего не хватает???
Записан
chu
Гость
« Ответ #1 : Апрель 26, 2011, 23:18 »

model->select;
Записан
nono
Гость
« Ответ #2 : Апрель 27, 2011, 00:16 »

chu, так пробовал уже - нито!!!
Мне кажется там что то с самим представлением потому что если как надо установить таблицу в модель до того, как саму модель установить в представление все работает.....тока вот наоборот не получается.... после установки модели в представление, устанавливать таблицы...может после установки таблицы надо как нибудь представление обновить....только как???
Записан
chu
Гость
« Ответ #3 : Апрель 27, 2011, 01:55 »

chu, так пробовал уже - нито!!!
Мне кажется там что то с самим представлением потому что если как надо установить таблицу в модель до того, как саму модель установить в представление все работает.....тока вот наоборот не получается.... после установки модели в представление, устанавливать таблицы...может после установки таблицы надо как нибудь представление обновить....только как???
Создай 2 модели, а в switch запиши table->setModel(model1 или model2)
Записан
nono
Гость
« Ответ #4 : Апрель 27, 2011, 09:48 »


Создай 2 модели, а в switch запиши table->setModel(model1 или model2)
[/quote]
Так я уже делал...только мне прийдется создавать не две модели а шесть...(я просто сокращенный пример привел)
причем надо это дело динамически регулировать, типа что-то вроде:
switch ..
..
delete table->model();
table->setModel(model5);
..
Такой вариант работает нормально..просто я хотел бы оптимизировать....ну считай постоянно либо создавать и удалять модели....либо создать все шесть моделей и выбирать потом нужную.....а так создал и установил одну модель....и меняешь в ней таблицу
Записан
nono
Гость
« Ответ #5 : Апрель 27, 2011, 10:45 »

Есть вариант после switch записать следующую конструкцию:

table->setModel(0);
model->select();
table->setModel(model);

Но все таки.....вызывать постоянно метод setModel не совсем логически правильно(мне кажется). Есть ли какая нибудь функция которая перезагружала модель в представлении???
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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