Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QItemDelegate和QStyledItemDelegate之间有什么区别?_C++_Qt_Qitemdelegate_Qstyleditemdelegate - Fatal编程技术网

C++ QItemDelegate和QStyledItemDelegate之间有什么区别?

C++ QItemDelegate和QStyledItemDelegate之间有什么区别?,c++,qt,qitemdelegate,qstyleditemdelegate,C++,Qt,Qitemdelegate,Qstyleditemdelegate,这两个类都为模型中的数据项提供了显示和编辑功能QStyledItemDelegate较新,关于QItemDelegate的Qt文档说明: 请注意,QStyledItemDelegate已接管绘制Qt的工作 项目视图。我们建议在创建时使用QStyledItemDelegate 新代表 我不明白两者之间有什么区别,为什么QStyledItemDelegate比QItemDelegate更受欢迎 如中所述,区别在于QStyledItemDelegate使用当前样式绘制其项目 这两个类是绘画和绘画的独立

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

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

我不明白两者之间有什么区别,为什么
QStyledItemDelegate
QItemDelegate
更受欢迎

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

这两个类是绘画和绘画的独立替代品 为视图中的项目提供编辑器。它们之间的区别是
QStyledItemDelegate
使用当前样式绘制其项目。我们 因此,建议在以下情况下使用
QStyledItemDelegate
作为基类 实现自定义委托或使用Qt样式表时。 除非自定义 代理需要使用绘图的样式


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

只是为了再次检查,您是否检查了文档的
QStyledItemDelegate vs.QItemDelegate
部分?@luliu我遗漏了该部分。谢谢。从QItemDelegate文档中可以看出:“它们之间的区别在于QStyledItemDelegate使用当前样式绘制其项。因此,我们建议在实现自定义委托或使用Qt样式表时使用QStyledItemDelegate作为基类。”“”因此,如果您使用的是样式表,它不会对
QItemDelegate
生成的小部件产生影响。这就是为什么Qt建议使用
QStyledItemDelegate