Имеется таблица 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);
}
Что я делаю не так?