Qt视图类的继承结构如下图所示:
其中,QAbstractItemView为抽象类,不能直接使用。其它八个类为具体类,以可视化组件的形式提供数据显示的能力,包括五个视图组件:
视图组件 | 视图组件类 | 功能 |
---|---|---|
列表视图 | QListView | 以单列形式显示一维数据结构 |
表格视图 | QTableView | 以表格形式显示二维数据结构 |
树形视图 | QTreeView | 以树的形式显示树状数据结构 |
列视图 | QColumnView | 用多个列表视图显示树状数据结构,树的每一层对应一个列表视图 |
表头视图 | QHeaderView | 显示表格的行表头或列表头 |
和三个项集组件:
项集组件 | 项集组件类 | 功能 |
---|---|---|
列表框 | QListWidget | 以单列形式显示一维数据结构 |
表格框 | QTableWidget | 以表格形式显示二维数据结构 |
树形框 | QTreeWidget | 以树的形式显示树状数据结构 |
三个项集组件类分别是三个视图组件类的子类,亦称简便类或便利类。视图组件与独立的模型相关联,组件中并没有数据。项集组件不与独立的模型相关联,组件中即包含数据,实际上是以项的方式集成了模型的功能。因此项集组件缺乏对大型数据源的灵活处理能力,更适合少量数据的显示和编辑。
调用视图组件的如下方法,将其与指定的模型对象建立关联:
xxxxxxxxxx
11void QAbstractItemView::setModel(QAbstractItemModel* model);
在视图上对数据所做的任何修改,都将自动反映到与之关联的模型中。一个模型可以同时关联多个视图。