crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Панель фильтров для TableView, Концепция. Как правильно организовать панель фильтров?
mishabard
  опции профиля:
сообщение 22.6.2011, 18:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 13.6.2011
Из: Киев
Пользователь №: 2741

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! В QT недавно. Вопрос по концепции: Подскажите пожалуйста, или поделитесь своим опытом,
как лучше организовать форму, на которой TableView с очень большим количеством колонок, Сверху должна появиться панель фильтров по каждому из полей таблицы.
Как это лучше организовать? Что почитать? Только если можно по конкретней))) а то я уже начитался, голова кругом идет о полученой информации(((
Может есть какой-то пример? Или концепция.
Я для себя пока придумал следующую:
1. На форме сверху создаю виджет, на котором размещаю Поля ввода, комбобоксы, флажки (для булевских полей) и .т.п. ЗАполняю их отдельными запросами из таблицы.
2. Ниже вставляю TableView. и формирую селект для него относительно выбранных данных на панели сверху.
Я уже так раньше делал на Делфи. Работать будет железно. Но может в QT есть возможность организовать фильтрацию проще. например как в Экселе, или прикрутить поля фильтров к заголовкам полей таблицы или как Делфовском TRxDBGrid - там это делается по умолчанию. я понимаю что здесь такого может не быть. Но можете хотя бы концепцию подсказать. Куда стремиться?!!!
Спасибо


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 22.6.2011, 21:04
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


можно вставить экселевскую таблицу на форму Qt, см. QAxWidget

Цитата
Сверху должна появиться панель фильтров по каждому из полей таблицы.

это не понятно, что значит фильтров?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mishabard
  опции профиля:
сообщение 22.6.2011, 21:53
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 13.6.2011
Из: Киев
Пользователь №: 2741

Спасибо сказали: 0 раз(а)




Репутация:   0  


Это значит, что, например, в TableView в прямоугольнике (заголовке колонки) появиться комбобокс с текстом или поле для ввода даты и времени для колонок с датами, если болевое поле в таблице, то флажок и .т.п. И в зависимости от того, что выбрано в комбобоксе для тек. колонки и какая выбрана дата, для колонки с датами и .т. д. будет формироваться запрос для модели TableView.
Т.е. как сделать отдельно панель фильтров от таблицы представления я знаю и все знают, а вот создать класс на основе QTableView в котором в заголовках автоматически будут появляться виджеты для фильтрации текущей колонки (поле ввода, комбобокс, флаг и т.п. в зависимости от типа поля в колонке представления) я не могу пока понять. Подскажите в каком напрвлении и что почитать. Может кто-то уже делал подобное?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 22.6.2011, 23:51
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


примерно понятно, но лучше бы прикрепить скриншот или видео, где это наглядно видно
предварительно: нужно либо через делегаты делать либо наследоваться от QTableView и добавлять нужные контролы

Сообщение отредактировал DIMEDROLL - 22.6.2011, 23:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.6.2011, 10:11
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


В Qt для этого есть модель/представление и её составная часть QSortFilterProxyModel.

Концепт тут, пример тут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mishabard
  опции профиля:
сообщение 23.6.2011, 20:59
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 13.6.2011
Из: Киев
Пользователь №: 2741

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(DIMEDROLL @ 22.6.2011, 23:51) *
примерно понятно, но лучше бы прикрепить скриншот или видео, где это наглядно видно
предварительно: нужно либо через делегаты делать либо наследоваться от QTableView и добавлять нужные контролы

Сейчас все работает в экселе. и выглядит следующим образом. Во сложеном файле. Можно ли сделать что-то подобное, на основе класса QTableView. Может подскажите вкратце как встроить виджет комбобокс в заголовок TableView. Может это уже раелизовано и нет необходимости изобретать велосипед))))


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 23.6.2011, 21:24
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


в примерах Qt есть пример встраивания спинбокса в таблицу, нужно использовать похожий подход
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mishabard
  опции профиля:
сообщение 24.6.2011, 12:45
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 13.6.2011
Из: Киев
Пользователь №: 2741

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(DIMEDROLL @ 23.6.2011, 21:24) *
в примерах Qt есть пример встраивания спинбокса в таблицу, нужно использовать похожий подход


Я это знал на самом деле, просто надеялся на то, что есть уже готовые решения от QT. Ок значит придется обработать класс Header в TablveView.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 24.6.2011, 13:50
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


еще как вариант поискать похожий виджет на сайтах:
http://qt-apps.org/
http://sourceforge.net/
http://code.google.com/
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.6.2011, 16:31
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mishabard @ 24.6.2011, 15:45) *
надеялся на то, что есть уже готовые решения от QT.
на прог.орге тема поднималась, решение вроде было найдено
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.4.2021, 1:51