QItemDelegate和QStyledItemDelegate有什么区别?

Nej*_*jat 13 c++ qt qitemdelegate qstyleditemdelegate

这两个类都为模型中的数据项提供显示和编辑工具.QStyledItemDelegate 是更新和关于QItemDelegate状态的Qt文档:

请注意,QStyledItemDelegate已经接管了绘制Qt项目视图的工作.我们建议在创建新委托时使用QStyledItemDelegate.

我很困惑这两者之间的区别是什么,为什么QStyledItemDelegate首选QItemDelegate!

m79*_*13d 6

QStyledItemDelegate文档中所述,区别在于QStyledItemDelegate使用当前样式绘制其项目.

这两个类是绘制的独立替代方法,并为视图中的项目提供编辑器.它们之间的区别在于QStyledItemDelegate使用当前样式来绘制其项目.因此,我们建议QStyledItemDelegate在实现自定义委托时或使用Qt样式表时使用它作为基类.除非自定义委托需要使用样式进行绘制,否则任一类所需的代码应该相等.

请注意,这个答案是基于Iuliu和Alex的评论