Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: hank от Март 16, 2011, 13:06



Название: Отображение столбцов в QTableView
Отправлено: 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);
}
 

Что я делаю не так?


Название: Re: Отображение столбцов в QTableView
Отправлено: Kolobok от Март 16, 2011, 19:48
Возьми QListView


Название: Re: Отображение столбцов в QTableView
Отправлено: chu от Март 16, 2011, 22:06
имена моделей разными сделай