首页 > 解决方案 > 发出没有角色的 dataChanged() 时,QAbstractItemView 如何知道我的自定义角色?

问题描述

收到信号 QAbstractItemModel::dataChanged() 后,连接的 QAbstractItemViews 将调用 QAbstractItemModel::data() 方法来更新其数据。用户定义的 data() 方法应该根据预定义角色(如 Qt::DisplayRole)和任何数量的用户定义的自定义角色(其值应等于 Qt::UserRole 及以上)提供不同的信息。

考虑到这一点,关于 QAbstractItemModel::dataChanged() 信号的 Qt 文档说明了这一点:

可选角色参数可用于指定实际修改了哪些数据角色。角色参数中的空向量意味着所有角色都应被视为已修改。角色参数中元素的顺序没有任何相关性。

http://doc.qt.io/qt-5/qabstractitemmodel.html#dataChanged

鉴于此,当我使用空的角色向量调用 dataChanged 时,QAbstractItemView 如何知道调用我的所有自定义角色?还是这仅指预定义的 Qt 角色?

标签: qtmodel-view-controllerqabstracttablemodelqabstractitemview

解决方案


推荐阅读