Модели в Питоне Python3
Использование модели и представления для списка list и combobox
Для отображения данных в виде списков и таблиц применяется "модель-представление", позволющее отделить данные от внешнего вида и избежать дублирования данных. В основе концепции лежат следующие составляющие:
Модель- является "оберткой" над данными Позволяет добавлять, изменять, удалять данные и управлять ими;
Представление-. предназначено для изображения элементов модели на экране.Сразу несколько представлений могут выводить одну модель.
Модель выделения- позволяет управление выделением. Если одна модель выделения установлена сразу в нескольких представлениях , то выделение элемента в одном представлении ведет к выделению в других представлениях.
Промежуточная модель- является прослойкой между моделью и представлением. Позволяет проводить сортировку, фильтрацию данных без изменения порядка следования элементов в базовой модели.
Делегат- представляет компонент для вывода и редактирования данных.Существуют стандартные классы делегатов, но разработчик может создать свои классы.
Представления
Для отображения элементов модели предназначены следующие классы представлений:
Listview- реализует простой список с возможностью выбора как одного, так и нескольких пунктов. Пункты списка, помимо текстовой надписи, могут содержать значки..
Qtableview-реализует таблицу.
Qtreeview- реализует иерархический список.
Так же можно воспользоваться классами combobox (раскрывающий список) , QlistWidget -(простой список), Qtabewidget (таблица). и QtreeWidget( иерархический список). Последние 3 виджета нарушают концепцию "модель-представление", хотя и отчасти базируются
Класс QstringlisModel
Форматы конструктора класса QstringlisModel:
<object>= QstringlisModel([parent=none])
<object>= QstringlisModel(<список строк>[,parent=None])
Пример:
После запуска программы выведется combobox со списком:
Усовершенствование см. далее 1 2 3 4 5 6