这两个类都为模型中的数据项提供显示和编辑功能。 QStyledItemDelegate
是较新的,关于 QItemDelegate
的 Qt 文档说明如下:
请注意,QStyledItemDelegate 已接管绘制 Qt 的项目视图的工作。当创建新代理时,我们建议使用 QStyledItemDelegate。
我不明白这两者之间的区别,并且不知道为什么更倾向于使用 QStyledItemDelegate
而不是 QItemDelegate
!
这两个类都为模型中的数据项提供显示和编辑功能。 QStyledItemDelegate
是较新的,关于 QItemDelegate
的 Qt 文档说明如下:
请注意,QStyledItemDelegate 已接管绘制 Qt 的项目视图的工作。当创建新代理时,我们建议使用 QStyledItemDelegate。
我不明白这两者之间的区别,并且不知道为什么更倾向于使用 QStyledItemDelegate
而不是 QItemDelegate
!
QStyledItemDelegate
文档所述,它们都是独立的替代品,用于在视图中绘制和提供项目编辑器。两者之间的区别在于QStyledItemDelegate
使用当前样式来绘制其项。因此,在实现自定义委托或使用Qt样式表时,我们建议将QStyledItemDelegate
作为基类。除非自定义委托需要使用样式进行绘制,否则所需的代码应该相等。请注意,本答案基于Iuliu和Alex的评论。