收到信号 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 角色?