Russian Qt Forum

Qt => Базы данных => Тема начата: Max Payne от Март 28, 2012, 14:13



Название: Несколько таблиц на одном QTableView
Отправлено: Max Payne от Март 28, 2012, 14:13
Всем доброе время суток , столкнулся со следующей проблемой . Есть база 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, может кто сталкивался с такой проблемой и есть более умное решение?
Заранее спасибо.


Название: Re: Несколько таблиц на одном QTableView
Отправлено: GreatSnake от Март 28, 2012, 14:35
модель не редактируется, если же скрывать с вьюва : QTableView::hideColumn(int Column);
то при отображении следующей таблицы. в ней скрыты столбцы предыдущей.
Ну дык после установки следующей модели показывай спрятанные колонки через QTableView::showColumn().


Название: Re: Несколько таблиц на одном QTableView
Отправлено: Max Payne от Март 28, 2012, 14:49
Я не знаю с какой таблицы перехожу на текущую, и найти какой столбец скрытый можно лишь, незнаю, перебером всех столбцов в текущей таблице :-/


Название: Re: Несколько таблиц на одном QTableView
Отправлено: Max Payne от Апрель 05, 2012, 13:27
Спасибо GreatSnake, тема закрыта =)