《Python Qt GUI与数据可视化编程》第4章 Model/View 结构

第4章 Model/View 结构

Model/View(模型/视图)结构是进行数据显示与编辑的一种编程结构,在这种结构里,源数据由模型(Model)读取,然后在视图(View)组件上显示和编辑,在界面上编辑修改的数据又通过模型保存到源数据。源数据可以是内存中的字符串列表或二维表格型数据,也可以是数据库中的数据表。视图就是界面上的视图类组件,如QListView、QTreeView、QTableView等。

Model/View结构是显示和编辑数据的一种有效结构,数据模型和用户界面分离开来,分别用不同的类实现。相比第3章介绍的QListWidget、QTreeWidget、QTableWidget等类将数据直接存储在组件里,Model/View结构使用起来更方便和灵活,特别是在处理大型数据的时候。

本章介绍Model/View结构的原理,以及常用的数据模型和视图组件的使用方法。与数据库相关的数据模型的使用在第7章再介绍。

4.1 Model/View 结构

GUI应用程序的主要功能是由用户在界面上编辑和修改数据,典型的如数据库应用程序。在数据库应用程序中,用户在界面上显示和修改数据,界面上的数据来源于数据库,修改后的数据又保存到数据库。

将界面组件与原始数据分离,又通过数据模型将界面和原始数据关联起来,从而实现界面与原始数据的交互操作,这是处理界面与数据的一种较好的方式。PyQt5使用Model/View结构来处理这种关系,Model/View的基本结构如图4-1。

《Python Qt GUI与数据可视化编程》第4章 Model/View 结构_第1张图片

图4-1 Model/View基本结构

4.2 QFileSystemModel

QFileSystemModel为本机的文件系统提供一个数据模型,可用于访问本机的文件系统。QFileSystemModel和视图组件QTreeView结合使用,可以用目录树的形式显示本机上的文件系统,如同Widnows的资源管理器一样。使用QFileSystemModel提供的接口函数,可以创建目录、删除目录、重命名目录,可以获得文件名称、目录名称、文件大小等参数,还可以获得文件的详细信息。

《Python Qt GUI与数据可视化编程》第4章 Model/View 结构_第2张图片

图4-6 实例Demo4_1的运行时界面

4.3 QStringListModel

QStringListModel是用于处理字符串列表的数据模型,可以作为QListView的数据模型,在界面上显示和编辑字符串列表。

《Python Qt GUI与数据可视化编程》第4章 Model/View 结构_第3张图片

图4-7 实例Demo4_2运行时界面

4.4 QStandardItemModel

QStandardItemModel是以项数据(item data)为基础的标准数据模型类,通常与QTableView组成Model/View结构,实现通用的二维数据的管理。

《Python Qt GUI与数据可视化编程》第4章 Model/View 结构_第4张图片

图4-8 示例Demo4_3的运行时界面

4.5 自定义代理

 

<上一章>            <回主页>        <下一章>

你可能感兴趣的:(Python,Qt,GUI与数据可视化编程,PyQt5,Python,Qt,GUI与数据可视化编程,Model/View结构)