model
在 Qt 中,模型/视图(Model/View)架构是一种用于分离数据和数据显示的设计模式。
这种架构使得数据的存储和显示可以独立地进行修改和扩展。
Qt 提供了丰富的模型和视图类,用于处理各种数据结构和显示需求。
主要组件
模型(Model):
QAbstractItemModel 所有模型的抽象基类,定义了模型/视图框架的基本接口。
↑
QAbstractListModel 用于列表数据的抽象模型类,继承自 QAbstractItemModel。
QAbstractTableModel 用于表格数据的抽象模型类,继承自 QAbstractItemModel。
QAbstractProxyModel 用于代理模型的抽象基类,继承自 QAbstractItemModel。代理模型用于对源模型进行排序、过滤等操作。
↑
QSortFilterProxyModel 一个具体的代理模型类,用于对源模型进行排序和过滤。
QAbstractItemModel:所有模型的抽象基类。
QStandardItemModel:一个通用的模型,适用于大多数简单的模型/视图应用。
QFileSystemModel:用于表示文件系统的模型。
QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel:用于数据库的模型。
视图(View):
视图(View)用于显示模型(Model)中的数据。视图类负责将模型的数据呈现给用户,并处理用户的交互操作。Qt 提供了多种视图类,每种视图类都有其特定的用途和显示方式。
QAbstractItemView 所有视图的抽象基类,定义了视图的基本接口。
↑
QListView 用于显示列表数据的视图。
QTableView 用于显示表格数据的视图
QTreeView 用于显示树形数据的视图。
QColumnView 用于显示多列树形数据的视图。
QHeaderView:用于显示表格和树形视图的头部,提供了列标题和行标题的显示功能。
委托(Delegate):
委托(Delegate)用于处理数据的显示和编辑。委托类负责在视图中绘制和编辑项目,