Концепция паттерна модель-представление
Распространенный шаблон при разработке пользовательских интерфейсов заключается в том, чтобы представление данных отделялось от визуализации. Это позволяет отображать одни и те же данные по-разному в зависимости от того, какую задачу выполняет пользователь. Например, телефонная книга может быть организована как вертикальный список текстовых записей или как сетка изображений контактов. В обоих случаях данные идентичны (телефонная книга), но визуализация разная. Это разделение обычно называют шаблоном модель-представление. В этом шаблоне данные называются моделью, а визуализация обрабатывается представлением.
В QML модель и представление объединяются делегатом. Обязанности распределяются следующим образом. Модель предоставляет данные. Для каждого элемента данных может быть несколько значений. В приведенном выше примере каждая запись в телефонной книге имеет имя, изображение и номер. Данные упорядочиваются в представлении, в котором каждый элемент визуализируется с помощью делегата. Задача представления состоит в том, чтобы упорядочить делегатов, при этом каждый делегат показывает пользователю значения каждого элемента модели.
Это означает, что делегат знает о содержимом модели и о том, как ее визуализировать. Представление знает о концепции делегатов и о том, как их размещать. Модель знает только о данных, которые она представляет.