QDataWidgetMapper可以用来创建数据感知的小部件,方法是将它们映射到项目模型的部分。 如果方向是水平的(默认),则section是模型的列,否则为行。
每次当前索引发生更改时,每个小部件都将使用模型中的数据进行更新,这些数据是通过创建映射时指定的属性进行更新的。 如果用户编辑小部件的内容,则使用相同的属性读取更改并写回模型。 默认情况下,每个小部件的user属性用于在模型和小部件之间传输数据。 从Qt 4.3开始,一个附加的addMapping()函数允许使用一个命名属性,而不是默认的user属性。
可以设置项委托来支持自定义小部件。 默认情况下,QItemDelegate用于将模型与小部件同步。
让我们假设我们有一个名为model的物品模型,其内容如下: