кинотеатр Победа Лучшая поза в постели мечеть

piknad@yandex.ru

Начинающим

изучать Python

Город Уфа

мост ч/з Белую

Яндекс.Погода

Салават Юлаев Монумент Дружбы
СОДЕРЖАНИЕ

На главную страницу сайта

Установка PYTHON 3.8

Установка PyQT5 с DESIGNER в PYTON 3.8

Установка Dgango 3.0 в Windows 7. Решение проблем

Создание таблицы tablewidget; редактирование,сортировка данных в таблице в Phyton 3.81 Tkinter

Создание таблицы; редактирование,сортировка данных,вставка и удаление строк в таблице в Phyton 3.81 PyQt5. Использование Designer.

Модели в Питон 3, Python 3, PyQt5

Примеры перевода программ с Delphi в Python

Создание сайта (блога) в Pycharm

Получение кэшбэка

Модели в Питоне 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])

Пример:

использование класса qstringsModel

Текст для копирования:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets,QtSql
from PyQt5.QtWidgets import QWidget
class GL_Window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
#методом super() мы явно вызываем родительский конструктор
lst=['Pyton','PHP','Perl','Ruby'] #список
#стр 572 Н.Прохоенок, Н.Дронов
model=QtCore.QStringListModel(lst,parent=None)#создание модели
predst=QtWidgets.QComboBox()#создание представления
predst.setModel(model)#назначение модели в передставление
vbox=QtWidgets.QVBoxLayout()#вертикальный контейнер
vbox.addWidget(predst)#помещение представления в контейнер
self.setLayout(vbox)#помещение в основное окно контейнера
print(model.stringList())#распечатывает список
model.insertRows(1,1)# вставляет 1 элемент в 1-ю позицию (с нуля)
print(model.rowCount())#Количество строк в списке (5,т.к одна строка пустая)
if __name__ == '__main__':

app = QtWidgets.QApplication(sys.argv)# Новый экземпляр QApplication
win = GL_Window()
win.resize(300,300);win.setWindowtitle('Модель-список list')
win.show()
sys.exit(app.exec_())

 

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

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

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

Загрузка...