zoukankan      html  css  js  c++  java
  • PyQt(Python+Qt)学习随笔:Model/View架构中的Model模型概念

    Model/View架构中的Model模型Model与数据源通信,为体系结构中的其他组件提供数据接口。与数据源通信的方式取决于数据源的类型(如文件、数据库、消息等)以及模型的实现方式。由于模型中的数据都是以项(item)为单位进行管理,所以Model模型又称为项模型(item models )。

    所有项模型(item models )类都是从基类QAbstractItemModel 类及其子类派生的,QAbstractItemModel 类定义了一个供视图views 和代理delegates 访问数据的接口。数据本身不必存储在模型中,它可以保存在由单独的类、文件、数据库或其他应用程序组件提供的数据结构或存储库中。

    QAbstractItemModel 提供了一个数据接口,该接口足够灵活地处理以列表、表和树的形式展现数据的视图。下图是三种模型对应数据层级示意:

    在这里插入图片描述

    然而,当为列表和类似表的数据结构实现新模型时,QAbstractListModel和QAbstractTableModel类是更好的起点,因为它们提供了公共函数的适当默认实现。这些类中的每一个都可以被子类化,以提供支持特殊类型列表或表的模型。

    PyQt和Qt提供了一些现成的模型,可用于处理数据项:

    • QStringListModel用于存储QString项的简单列表。
    • QStandardItemModel管理更复杂的项树结构,每个项都可以包含任意数据。
    • QFileSystemModel提供有关本地文件系统中的文件和目录的信息。
    • QSqlQueryModel、QSqlTableModel和QSqlRelationalTableModel用于使用Model/View对应约定协议实现数据库访问。

    如果这些标准模型不满足应用的需求,可以将QAbstractItemModel 、QAbstractListModel或QAbstractTableModel子类化,以创建自定义模型。

    老猿Python,跟老猿学Python!

  • 相关阅读:
    2020.7.11
    2020.7.13
    2020.7.9
    2020.7.10
    Java入门——day13
    Java入门——day12
    Java入门——day11
    虚拟交换机
    KVM虚拟化 ProxmoxVE
    【路径】python环境错误调试【执行路径】【操作系统,版本】
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/12235084.html
Copyright © 2011-2022 走看看