Здравствуйте! В QT недавно. Вопрос по концепции: Подскажите пожалуйста, или поделитесь своим опытом,
как лучше организовать форму, на которой TableView с очень большим количеством колонок, Сверху должна появиться панель фильтров по каждому из полей таблицы.
Как это лучше организовать? Что почитать? Только если можно по конкретней))) а то я уже начитался, голова кругом идет о полученой информации(((
Может есть какой-то пример? Или концепция.
Я для себя пока придумал следующую:
1. На форме сверху создаю виджет, на котором размещаю Поля ввода, комбобоксы, флажки (для булевских полей) и .т.п. ЗАполняю их отдельными запросами из таблицы.
2. Ниже вставляю TableView. и формирую селект для него относительно выбранных данных на панели сверху.
Я уже так раньше делал на Делфи. Работать будет железно. Но может в QT есть возможность организовать фильтрацию проще. например как в Экселе, или прикрутить поля фильтров к заголовкам полей таблицы или как Делфовском TRxDBGrid - там это делается по умолчанию. я понимаю что здесь такого может не быть. Но можете хотя бы концепцию подсказать. Куда стремиться?!!!
Спасибо
можно вставить экселевскую таблицу на форму Qt, см. QAxWidget
Это значит, что, например, в TableView в прямоугольнике (заголовке колонки) появиться комбобокс с текстом или поле для ввода даты и времени для колонок с датами, если болевое поле в таблице, то флажок и .т.п. И в зависимости от того, что выбрано в комбобоксе для тек. колонки и какая выбрана дата, для колонки с датами и .т. д. будет формироваться запрос для модели TableView.
Т.е. как сделать отдельно панель фильтров от таблицы представления я знаю и все знают, а вот создать класс на основе QTableView в котором в заголовках автоматически будут появляться виджеты для фильтрации текущей колонки (поле ввода, комбобокс, флаг и т.п. в зависимости от типа поля в колонке представления) я не могу пока понять. Подскажите в каком напрвлении и что почитать. Может кто-то уже делал подобное?
примерно понятно, но лучше бы прикрепить скриншот или видео, где это наглядно видно
предварительно: нужно либо через делегаты делать либо наследоваться от QTableView и добавлять нужные контролы
В Qt для этого есть модель/представление и её составная часть QSortFilterProxyModel.
Концепт http://doc.crossplatform.ru/qt/4.5.0/model-view-proxy-models.html, пример http://doc.crossplatform.ru/qt/4.5.0/itemviews-customsortfiltermodel.html
в примерах Qt есть пример встраивания спинбокса в таблицу, нужно использовать похожий подход
еще как вариант поискать похожий виджет на сайтах:
http://qt-apps.org/
http://sourceforge.net/
http://code.google.com/
Всем спасибо за ответы!!! Думаю тебя закрыта
http://qt-apps.org/content/show.php/QyurVisualSqlFilter?content=113237
вот даже лучше чем то что я хотел
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)