crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QTreeView или QTreeWidget, Необходимо организовать структуру город - улица - объект.
silver47
  опции профиля:
сообщение 9.3.2011, 9:39
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Доброго времени суток. Необходимо отобразить структуру:

Город (название городов) - высшая ступень иерархии
Улица (название улицы) - чуть более низшая ступень
Объект (объект, расположенный по этому адресу)

Это лежит в базе данных в таблицах: cities (название), streets (название), object(название объекта, город, улица, дом). Как лучше сделать? С помошью QTreeWidget эту структуру можно создать вручную перебирая все города и все улицы, вопрос производительности. Можно ли это усуществить с помошью QTreeView. То есть вопрос стоит в том, какую модель использовать :(

Спамибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 9.3.2011, 10:42
Сообщение #2


Участник
**

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

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




Репутация:   4  


не заполнял treeview своей моделью, в tableview просто делаешь запрос к базе и всё работает) но я бы всё равно делал через view, ибо с виджетом всё ясно без слов, а тут интересно проделать)

Сообщение отредактировал abc - 9.3.2011, 10:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 9.3.2011, 11:34
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Цитата(abc @ 9.3.2011, 12:42) *
не заполнял treeview своей моделью, в tableview просто делаешь запрос к базе и всё работает) но я бы всё равно делал через view, ибо с виджетом всё ясно без слов, а тут интересно проделать)


Тут и в TreeView, назначаешь QSqlQueryModel с запросом к БД и все работает.... но как сделать модель свою иерархическую :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 9.3.2011, 12:34
Сообщение #4


Участник
**

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

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




Репутация:   4  


да, придётся писать свою модель
qt\examples\itemviews\simpletreemodel
в бой! m_shok

тут с sql выложен пример:
http://www.sql.ru/forum/actualthread.aspx?tid=611751
ну, кто его знает, может рабочий)

Сообщение отредактировал abc - 9.3.2011, 12:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 9.3.2011, 22:05
Сообщение #5


Участник
**

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

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




Репутация:   4  


вот ещё вспомнил, что существует QStandardItemModel, с ней просто жить, правда скила разработки своей неповторимой модели не получишь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 24.3.2011, 17:42
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


Да уж... я только недавно закончил модель гораздо более сложную )) там иерархия была глубиной до 10 уровней, где каждый из уровней своя таблица из БД.

В процессе разработки очень много камней подводных обходил... вообщем не простое это дело)

В целом логика такая - на каждую ступень иерархии, я создавал объект QSqlTableModel (иногда и QSqlRelationalModel).

В твоем случае у тебя будет три объекта QSqlTableModel
Самое сложное - правильно переопределить методы index(), rowCount(), parent() ибо на них строится вся система)

В принципе если дашь структуру БД, тогда я могу опубликовать статью)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 25.3.2011, 12:33
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Цитата(PAFOS @ 24.3.2011, 19:42) *
В принципе если дашь структуру БД, тогда я могу опубликовать статью)


Структура БД простая до безобразия, т.к. тренировочная выглядит так:

таблица cities:
ID int - номер города, обычный автоинкримент
NAME nvarchar(20) - название города

таблица streets:
ID int - номер улицы, автоинкримент
NAME nvarchar(30) - название улицы
CITYID int - город в котором эта улица есть

таблица organizations:
ID int - номер организации автоинкримент
NAME nvarchar(30) - название организации
CITY int = cities.ID
STREET int = streets.ID
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 25.3.2011, 13:41
Сообщение #8


Участник
**

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

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




Репутация:   4  


Сильвер, ты сам-то выпутался?)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 28.3.2011, 8:11
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Цитата(abc @ 25.3.2011, 15:41) *
Сильвер, ты сам-то выпутался?)


гм. Вопрос к тому что непонятно структуру изобразил или как я сам реализовал?
Сам пока не реализовывал. Дело встало на книге: Mark Summerfield - Advanced Qt Programming. Там это разжевано, но проблема в том, что тяжело понимать если в программировании далеко не Advanced и в английском языке на той же ступени. Пока ковыряю немного другое.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 28.3.2011, 9:30
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


Набросал тут за часок... пока без коментов, кто захочет, разберется.
в исходниках валяется БД streets.sqlite, ее рядом с ехе положить следует.
Прикрепленные файлы
Прикрепленный файл  StreetsModel.zip ( 4 килобайт ) Кол-во скачиваний: 92
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 8.12.2019, 19:11