视图类 View
概念:
在模型/视图体系结构中,视图从模型中获取数据项并呈现给用户。数据呈现的方式与模型提供的数据表示方式不同,也可能与用于存储数据项的基础数据结构完全不同。
内容和表示的分离是通过使用QAbstractItemModel提供的标准模型接口、QAbstractItemView提供的标准视图接口以及使用以一般方式表示数据项的模型索引实现的。
视图通常管理从模型获取的数据的总体布局。它们可以呈现数据本身的单个项,或使用委托来处理渲染和编辑要素。
除了显示数据,视图还处理项之间的导航以及项选择的某些方面。视图还实现基本的用户界面功能,如上下文菜单和拖放。视图可以为项目提供默认的编辑功能,也可以与委托一起提供自定义编辑器。
可以在没有模型的情况下构造视图,但必须提供模型,然后才能显示有用的信息。视图跟踪用户通过使用选项选择来跟踪项目,这些选择可以针对每个视图单独维护,也可以在多个视图之间共享。
某些视图(如QTableView和QTreeView)显示标题以及项目。这些也由视图类QHeaderView 实现。标题通常访问包含标头视图的模型。他们使用QAbstractIteModel::headerData() 函数从模型检索数据,并且通常以标签的形式显示标头信息。可以从 QHeaderView 类对新标头进行子分类,以便为视图提供更专门的标签。
使用现有的视图
Qt 提供了三个即用型视图类,这些类以大多数用户熟悉的方式显示来自模型的数据。
- QListView 可以以简单列表形式或经典图标视图的形式显示模型中的项目。
- QTreeView将模型中的项目显示为列表的层次结构,允许以紧凑的方式表示深度嵌套结构。
- QTableView以表的形式显示模型中的项目,与电子表格应用程序的布局非常多。
对于大多数应用程序,上面显示的标准视图的默认行为应该足够。它们提供基本的编辑功能,并可进行定制,满足更专业用户界面的需求。
视图显示模型的内容
构造一个视图来显示模型的内容,在单个main函数中执行。
#include