Модель-представление, как создавать свои модели., Модель-представление OTL и вывод информации |
Здравствуйте, гость ( Вход | Регистрация )
Модель-представление, как создавать свои модели., Модель-представление OTL и вывод информации |
vinnipux |
10.7.2008, 8:07
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 10.7.2008 Пользователь №: 230 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброе время суток.
Встала задача разработать приложение работающие с БД. Операционная система Windows ХР среда разработки Eclipse Europe + Qt4 (open_sourse) + MinGW. Для соединения с БД была выбрана библиотека OTL(OCCI и OCI так и не смог осилить), пришлось попарится, но вроде разобрался как работать с ней. И теперь встал вопрос как выводить данные получаемы от БД. В Qt4 реализована концепция модель-представление, как я понял модель отвечает за доступ к данным через стандартный интерфейс, представление отображает данные. И вот вопрос как написать модель? Ясно что необходимо использовать класс QAbstractItemModel. Необходимо будет перегрузить функции data(),rowCount(), columnCount(). Но мне не ясно как быть с indexModel. как они будут создаваться и описывается. ведь источником данных для модели будет otl_stream что представляет из себя как я понимаю однонаправленный курсор, перемещение по которому возможно только в одном направлении. Честно сказать не совсем понятен процесс взаимодействия модели и представления. То есть представление отображает все данные которые есть в модели (допустим селект вернул 500 тысяч строк), или только часть которую видно на дисплее, а остальные данные подгружает по мере необходимости (перемещения по представлению вниз). Далее для каждого столбца в модели данных создается index, так как otl_stream однонаправлен, где будут хранится данные уже выбранных данных? Или необходимо создавать в модели структуру в которую загружать результат выборки, и уже из этой структуры передавать данные представлению. Или просто искользовать QTableWidget. Может, кто сталкивался с проблемой вывода данных на экран, и может поделиться опытом, примерами, дать совет, или разъяснить, что я не так понимаю, буду очень благодарен. |
|
|
AD |
10.7.2008, 8:17
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Сам недавно этим вопросом тоже стал заниматься. Насколько я понимаю, для реализации тестового примера вполне достаточно QSqlTableModel, QAbstractItemModel следует применять, если ты хочешь сделать более тонкое управление поведением модели. Для отображения можно использовать как и QTableWidget, так и QTableView!!!
Представление отображает только те данные, которые видны на экране. Судя по твоей БД, лучше для представления использовать QTableView! Сообщение отредактировал AD - 10.7.2008, 8:19 |
|
|
vinnipux |
10.7.2008, 8:51
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 10.7.2008 Пользователь №: 230 Спасибо сказали: 0 раз(а) Репутация: 0 |
Сам недавно этим вопросом тоже стал заниматься. Насколько я понимаю, для реализации тестового примера вполне достаточно QSqlTableModel, QAbstractItemModel следует применять, если ты хочешь сделать более тонкое управление поведением модели. Для отображения можно использовать как и QTableWidget, так и QTableView!!! Представление отображает только те данные, которые видны на экране. Судя по твоей БД, лучше для представления использовать QTableView! QSqlTableModel не совсем подойдет, как я понимаю он предназначен для работы с Qt-ными средствами доступа к БД. 1) "перегрузить" и переписать - несколько разные понятия, тебе нужно будет именно переписать, т.к. это виртуальные функции 2) в %QTDIR%/examples насколько я знаю куча примеров на эту тему 1) спасибо что поправили. 2) если не трудно вы немогли бы указать имена примеров, где вы увидили примеры на эту тему? |
|
|
Текстовая версия | Сейчас: 22.12.2024, 21:02 |