QItemDelegate和QStyledItemDelegate有什么区别?

时间:2015-03-05 06:06:53

标签: c++ qt qitemdelegate qstyleditemdelegate

这两个类都为模型中的数据项提供显示和编辑功能。 QStyledItemDelegate较新,有关QItemDelegate的Qt文档说明:

  

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

我很困惑这两者之间的区别是什么QStyledItemDelegateQItemDelegate更受欢迎!

1 个答案:

答案 0 :(得分:5)

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

  

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

请注意,此答案基于Iuliu和Alex的评论