16

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

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

我很困惑两者之间有什么区别,为什么QStyledItemDelegate首选QItemDelegate

4

1 回答 1

8

QStyledItemDelegate文档中所述,不同之处在于QStyledItemDelegate使用当前样式来绘制其项目。

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

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

于 2017-04-30T20:08:05.613 回答