QItemDelegate

QItemDelegate类为模型中的数据项提供显示和编辑功能。

QItemDelegate可用于为基于QAbstractItemView子类的项目视图提供自定义显示功能和编辑器小部件。 为此,使用委托可以独立于模型和视图自定义和开发显示和编辑机制。

QItemDelegate类是Model / View类之一,并且是Qt模型/视图框架的一部分。 请注意,QStyledItemDelegate接管了绘制Qt的项目视图的工作。 我们建议在创建新委托时使用QStyledItemDelegate。

在标准视图中显示来自自定义模型的项目时,仅确保模型为确定视图中项目外观的每个角色返回适当的数据通常就足够了。 Qt标准视图使用的默认委托使用此角色信息以用户期望的大多数常见形式显示项目。 但是,有时有必要对项目的外观进行更多控制,而不是默认委托可以提供的控制。

此类提供用于在视图中绘制项目数据并编辑项目模型中的数据的功能的默认实现。 提供了QAbstractItemDelegate中定义的paint()和sizeHint()虚拟函数的默认实现,以确保委托实现视图期望的正确基本行为。 您可以在子类中重新实现这些功能,以自定义项目的外观。

在项目视图中编辑数据时,QItemDelegate提供了一个编辑器小部件,该小部件是在进行编辑时置于视图顶部的小部件。 编辑器是使用QItemEditorFactory创建的; 由QItemEditorFactory提供的默认静态实例安装在所有项目委托上。 您可以使用setItemEditorFactory()设置自定义工厂,或者使用QItemEditorFactory :: setDefaultFactory()设置新的默认工厂。 使用Qt :: EditRole编辑的是存储在项目模型中的数据。

这里仅重新实现基于小部件的委托的标准编辑功能:

createEditor()返回用于更改模型数据的窗口小部件,可以重新实现以自定义编辑行为。

setEditorData()为小部件提供要处理的数据。

updateEditorGeometry()确保相对于项目视图正确显示编辑器。
setModelData()将更新的数据返回到模型。

closeEditor()信号指示用户已完成对数据的编辑,并且可以销毁编辑器小部件

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值