![acd14cb59498104c0fdf8c9eccba5bf8.png](https://i-blog.csdnimg.cn/blog_migrate/0ddd85a8db572515bc971f3c964bc1de.jpeg)
视图(View)简介
在模型-视图框架中,视图从模型中获得数据项,并将其显示给用户。数据显示的方式不必与模型所提供的数据表示方法相同,可以与底层存储数据项的数据结构完全不同。内容与显示的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口和用来表示数据项的模型索引共同实现的。视图负责管理从模型中读取的数据的显示外观布局。
视图可以自己去渲染每个数据项,也可以利用委托来处理渲染和编辑。除了显示数据,视图也处理对数据项导航,参与有关于数据项选择的部分功能。视图也实现一些基本的用户接口特性,如上下文菜单与拖拽功能。视图为数据项提供了默认编程功能,但也可搭配委托以实现自定义的编辑器。
可以在没有模型的情况下构造视图,但是必须提供模型才能显示有用的信息。视图通过使用选择来跟踪用户选择的数据项,这些数据项可以由单个视图独立维护,也可以由多个视图共享。像QTableView和QTreeView这样的视图,除数据项之外也可显示标题(Headers),标题部分通过QHeaderView来实现。标题通常与包含它们的视图访问同一模型。他们使用QAbstractItemModel. headerData()函数从模型中检索数据,并且通常以标签形式显示标题信息。新标题需要子类化QHeaderView,以给视图提供更专业的标签。