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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение столбцов в QTableView  (Прочитано 3304 раз)
hank
Гость
« : Март 16, 2011, 13:06 »

Имеется таблица QTableView, на которой отображается содержимое модели QSqlModel. При этом мне нужно не всё содержимое модели, а конкретный столбец. Для этого я делаю следующее:
Код
C++ (Qt)
for( int i = 0; i<model->columnCount(); ++i )
{
   if ( i != 1 )
   {
       ui->tableView->hideColumn(i);
   }
}

Теперь мне нужно, чтобы в зависимости от некоторого условия моделька считывала разные таблицы из БД и выводила их на один QTableView. Выглядит это примерно так:
Код
C++ (Qt)
case 0:
{
   model = new QSqlTableModel(this,DB);
   model->setTable("tab1");
   model->select();
 
   ui->tableView->setModel(model);
 
   for( int i = 0; i<model->columnCount(); ++i )
   {
       if ( i != 1 )
       {
           ui->tableView->hideColumn(i);
       }
   }
 
   break;
}
case 1:
{
   model = new QSqlTableModel(this,DB);
   model->setTable("tab2");
   model->select();
 
   ui->tableView->setModel(model);
 
   for( int i = 0; i<model->columnCount(); ++i )
   {
       if ( i != 2 )
       {
           ui->tableView->hideColumn(i);
       }
   }
 
   break;
}

Этот switch у меня повешен на смену закладок в QTabWidget'е. При этом если я переключаюсь с первой закладки на вторую и обратно, у QTableView оказываются скрытыми все столбцы, даже если я в начале каждого case указываю:
Код
C++ (Qt)
for( int i = 0; i<model->columnCount(); ++i )
{
   ui->tableView->showColumn(i);
}
 

Что я делаю не так?
Записан
Kolobok
Гость
« Ответ #1 : Март 16, 2011, 19:48 »

Возьми QListView
Записан
chu
Гость
« Ответ #2 : Март 16, 2011, 22:06 »

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


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