46 视图

Qt视图类的继承结构如下图所示:

其中,QAbstractItemView为抽象类,不能直接使用。其它八个类为具体类,以可视化组件的形式提供数据显示的能力,包括五个视图组件:

视图组件视图组件类功能
列表视图QListView以单列形式显示一维数据结构
表格视图QTableView以表格形式显示二维数据结构
树形视图QTreeView以树的形式显示树状数据结构
列视图QColumnView用多个列表视图显示树状数据结构,树的每一层对应一个列表视图
表头视图QHeaderView显示表格的行表头或列表头

和三个项集组件:

项集组件项集组件类功能
列表框QListWidget以单列形式显示一维数据结构
表格框QTableWidget以表格形式显示二维数据结构
树形框QTreeWidget以树的形式显示树状数据结构

三个项集组件类分别是三个视图组件类的子类,亦称简便类或便利类。视图组件与独立的模型相关联,组件中并没有数据。项集组件不与独立的模型相关联,组件中即包含数据,实际上是以项的方式集成了模型的功能。因此项集组件缺乏对大型数据源的灵活处理能力,更适合少量数据的显示和编辑。

调用视图组件的如下方法,将其与指定的模型对象建立关联:

在视图上对数据所做的任何修改,都将自动反映到与之关联的模型中。一个模型可以同时关联多个视图。