收到信号QAbstractItemModel :: dataChanged()后,连接的QAbstractItemViews将调用QAbstractItemModel :: data()方法来更新其数据。用户定义的data()方法应根据预定义的角色(如Qt :: DisplayRole)和任何数量的用户定义的自定义角色提供不同的信息,这些角色的值应等于Qt :: UserRole及以上。
考虑到这一点,有关QAbstractItemModel :: dataChanged()信号的Qt文档声明:
可选的roles参数可用于指定哪些数据角色 实际上已被修改。角色参数中的空向量 意味着应该将所有角色视为已修改。的顺序 role参数中的元素没有任何相关性。
http://doc.qt.io/qt-5/qabstractitemmodel.html#dataChanged
鉴于此,当我用一个空的角色向量调用dataChanged时,QAbstractItemView如何知道调用我的所有自定义角色?或者这只是指预定义的Qt角色?