概念
与模型-视图-控制器模式不同,模型/视图设计没有包含一个完全独立的组件来管理与用户的交互。通常,视图负责向用户展示模型数据,并负责处理用户输入。为了在获取输入的方式上具有一定的灵活性,交互由委托执行。这些组件提供输入功能,还负责在某些视图中渲染单个项目。控制委托的标准接口定义在QAbstractItemDelegate类中。
委托希望能够通过实现paint()和sizeHint()函数来渲染它们自己的内容。然而,简单的基于部件的委托可以继承QStyledItemDelegate而不是QAbstractItemDelegate,并利用这些函数的默认实现。
委托编辑器可以通过使用小部件来管理编辑过程,也可以通过直接处理事件来实现。第一种方法将在本节后面介绍,它也会在Spin Box委托的例子中展示。
Pixelator的例子展示了如何创建一个自定义委托来为tablev