[英]Sorting and displaying a custom QVariant type
我有一个想与QVariant一起使用的自定义类型,但是我不知道如何使QVariant显示在表中或如何在QSortFilterProxyModel中进行排序。
我使用Q_DECLARE_METATYPE注册该类型,并编写了通过qRegisterMetaTypeStreamOperators注册的流运算符,但是由于某种原因,当我将这种类型与表模型一起使用时,它不会显示任何内容,也不会进行排序。
我应该指定不能修改此自定义类型。 它具有一个副本和默认构造函数,但我无法修改源代码以使其与QVariant一起使用。 有没有一种非侵入式获得我想要的行为的方法?
显示方式
听起来您的模型没有为DisplayRole
返回有意义的内容。 用于显示模型中所有内容的QAbstractItemDelegate (通常为QStyledItemDelegate )需要了解如何呈现Qt::DisplayRole
data()
返回的内容。
您有两个主要选择:
如果要编辑该类型的项目,则需要调用registerEditor,以便可以将自定义类型与编辑器相关联。 请参阅QItemEditorFactory文档 。
排序 :
您不能依靠QVariant的比较运算符,因为它不适用于自定义类型,因此您需要实现QSortFilterProxyModel::lessThan
才能进行自定义排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.