Модели в Питоне Python3

1 2 3 4 5 6

Использование модели и представления для списка list и combobox

Для отображения данных в виде списков и таблиц применяется "модель-представление", позволющее отделить данные от внешнего вида и избежать дублирования данных. В основе концепции лежат следующие составляющие:

Модель- является "оберткой" над данными Позволяет добавлять, изменять, удалять данные и управлять ими;

Представление-. предназначено для изображения элементов модели на экране.Сразу несколько представлений могут выводить одну модель.

Модель выделения- позволяет управление выделением. Если одна модель выделения установлена сразу в нескольких представлениях , то выделение элемента в одном представлении ведет к выделению в других представлениях.

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

Делегат- представляет компонент для вывода и редактирования данных.Существуют стандартные классы делегатов, но разработчик может создать свои классы.

Представления

Для отображения элементов модели предназначены следующие классы представлений:

Listview- реализует простой список с возможностью выбора как одного, так и нескольких пунктов. Пункты списка, помимо текстовой надписи, могут содержать значки..

Qtableview-реализует таблицу.

Qtreeview- реализует иерархический список.

Так же можно воспользоваться классами combobox (раскрывающий список) , QlistWidget -(простой список), Qtabewidget (таблица). и QtreeWidget( иерархический список). Последние 3 виджета нарушают концепцию "модель-представление", хотя и отчасти базируются

Класс QstringlisModel

Форматы конструктора класса QstringlisModel:

<object>= QstringlisModel([parent=none])

<object>= QstringlisModel(<список строк>[,parent=None])

Пример:

После запуска программы выведется combobox со списком:

работа с моделями в Питоне 3 python

Усовершенствование см. далее 1 2 3 4 5 6