Проектирование контакт листа Qt

232
21 ноября 2017, 23:53

Нужно написать контакт лист для мессенджера. Для этого пытаюсь правильно все спроектировать для удобной работы и простого расширения.

На данный момент имеется несколько моделей сущностей с представлений для них. Назовем их User, Chat, Group (у всех есть общий родитель AbstractModel) и ***View для каждого из них.
Необходимо это красиво рисовать списком пока по некоторым критериям:

  • Только группы
  • Только контакты
  • Переписка (чаты и контакты)

Знаю, что уже на этом этапе все плохо, но проект коммерческий и все переписать я не могу.

Так вот, на данный момент лучшее, что я придумал это сделать модель, унаследованную от QAbstractListModel и содержать в ней все элементы (QVector<AbstractModel>), эту модель привязать к QListView и создать QSortFilterProxyModel, которая как раз будет отвечать за отображение по критериям + сортировка.

Но в этом подходе наткнулся на одну очень весомую проблему, которую не могу решить уже на протяжении нескольких дней: у каждого элемента есть свое специфичное представление и я не знаю как его правильно установить т.к. QListView не умеет расширять строки по необходимости.

Самое забавное, что в QListWidget этих проблем в принципе нет, но привязать свои модели к нему нельзя...

Может я где-то не прав? Буду признателен, если укажите

READ ALSO
Try to build app with qt ld errors, ljasper, lQt5PlatformSupport [требует правки]

Try to build app with qt ld errors, ljasper, lQt5PlatformSupport [требует правки]

I'm trying to compile a program, on windows with cmake, and get qt linker errors

241
Какие на данный момент есть методы скачивания файлов?

Какие на данный момент есть методы скачивания файлов?

Допустим, есть определённый набор файлов, от маленьких до больших (несколько ГБ)И есть много клиентов, у которых установлена наша программа...

181
Изменить язык программы

Изменить язык программы

Как изменить язык программы используя стандартные средства локализацииСоздал ресурс MyForm

182
Как работать с символами в const char*

Как работать с символами в const char*

Есть переменная которая объявлена как const char* str_valueНужно получить самое короткое слово в ней

236