В течение нескольких дней я боролся с QT, моделями, представлениями, делегатами.Я хотел бы знать, что архитектурно, я на правильном пути.Если вы можете это прокомментировать, то приветствуем.
ЦЕЛЬ:
Список друзей с прокруткой, похожий на тот, что есть в Skype.Должны поддерживаться следующие требования:
полный контроль над рисованием строки.Как правило, значки переменной ширины основаны на состоянии объекта, представленного строкой.
Переменная высота для строк, как правило, более подробное отображение строки для выбранной строки.
- Добавлены элементы управления для выбранных строк (кнопки действий).
- Полный контроль над сортировкой списка
- обычно различные типы строк, собеседник или текстовый заполнитель с меткой, указывающей тип друзей прямо под ним (например, «автономные контакты»,"онлайн-контакты").
Мои мысли были следующими:
- Использование QListView для элемента управления списком. Используйте производную модель QAbstractList для хранения данных друзей.Он будет иметь массив std :: vector с коллекцией «MyContactClass».Каждый экземпляр «MyContactClass» будет представлять собеседника со связанными с ним полями данных
- Использовать производный класс QAbstractItemDelegate для обработки рисования и sizeHinting строк
- Подключить модель и делегировать QListView
- заполнить модель ...
- Заполнить QListView
Я понимаю, что здесь есть много деталей, и это совсем не тривиально. you я хотел бы спросить: являются ли пункты с 1 по 6 правильными с точки зрения архитектуры, учитывая то, что я пытаюсь сделать.