Всем доброе время суток , столкнулся со следующей проблемой . Есть база Sql на SQLITE , в ней 20 таблиц, с разными количеством столбцов и строк. Таблицы имеют связи между собой. Задача - реализовать СУБД для редактирование БД. Список таблиц в QListView по двойном нажатии открываю таблицу в QTableView , соответственно назначаю делегаты разные и определяю заголовок таблицы. Некоторые столбцы должны быть скрыты (в каждой таблицы разные). Для отображения использую QSqlTableModel , для построения сложных запросов на выборку данных использую QSqlQueryModel. Чтобы не писать свою модель нашел пример как устанавливать запрос в QSqlTableModel:
QSqlTableModel *m = new QSqlTableModel();
QsqlQueryModel *q = dynamic_cast<QSqlQueryModel(m)>;
Загвоздка в скрытии столбцов, если удалять с модели :
QSqlTableModel :: removeColumn(int Column);
модель не редактируется, если же скрывать с вьюва : QTableView::hideColumn(int Column);
то при отображении следующей таблицы. в ней скрыты столбцы предыдущей. Для избежания замыкание базы использую одну модель QSqltableModel и одну QSqlQueryModel в которых таблицы меняю методами:
QSqlTableModel::setTable(QString);
QSqlQueryModel::setQuery(QString query, QDataBase base);
Я пытался сделать QStackWidget и для каждой таблицы на соответствующей страницы стеквиджета разместить QTableView, может кто сталкивался с такой проблемой и есть более умное решение?
Заранее спасибо.