2010-05-22 1 views
2

Я пишу IRC-клиент (да еще один). Короче. Я пишу диалог сервера , который держит список этого:Создание сложной модели дерева в Qt

 
Identity 
    Networks 
     Channels 
     Addresses 

У меня есть 3 разных представления списка, которые будут для сетей, каналов и адресов. Когда пользователь изменяет идентификатор (поле со списком). Список сетей будет искать все сети для этой конкретной Identity. После загрузки сетей он автоматически выбирает первую сеть, а затем загружает все каналы и адреса для этой конкретной сети.

Проблема заключается в том, что я хочу иметь 3 вида для 1 модели, чтобы свести к минимуму всю память и загрузку данных. Так что это упрощает управление и не выполняет кучу работы.

Если вы посмотрите на QColumnView, это то же самое. Но мне не нужно, чтобы она была на одной точной странице, так как представления находятся на совершенно разных вкладках, чтобы было проще проходить диалог с сервером.

Мне интересно, какой будет лучший способ справиться с этой сложностью. Информация хранится в базе данных SQLite. У меня уже есть классы, написанные для извлечения и хранения. Просто моделирование является болезненной частью этого решения.

ответ

0

Лучший способ сделать это - просто загрузить модели динамически. Когда ComboBox изменяет Identities. Удалите все элементы в NetworkList и просто повторно заселите его и удалите все сети, которые там были.

1

Я бы сделал один TreeModel, а затем использовал QSortFilterProxyModel(), чтобы отобразить на нем три разных вида.

 Смежные вопросы

  • Нет связанных вопросов^_^