Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Qt 当发出没有角色的dataChanged()时,QAbstractItemView如何知道我的自定义角色?_Qt_Model View Controller_Qabstracttablemodel_Qabstractitemview - Fatal编程技术网

Qt 当发出没有角色的dataChanged()时,QAbstractItemView如何知道我的自定义角色?

Qt 当发出没有角色的dataChanged()时,QAbstractItemView如何知道我的自定义角色?,qt,model-view-controller,qabstracttablemodel,qabstractitemview,Qt,Model View Controller,Qabstracttablemodel,Qabstractitemview,收到信号QAbstractItemModel::dataChanged()后,连接的QAbstractItemView将调用QAbstractItemModel::data()方法来更新其数据。user defined data()方法应根据预定义角色(如Qt::DisplayRole)和任意数量的用户定义自定义角色(其值应等于Qt::UserRole及以上)提供不同的信息 考虑到这一点,Qt文档中关于QAbstractItemModel::dataChanged()信号的状态如下: 可选角色参

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

考虑到这一点,Qt文档中关于QAbstractItemModel::dataChanged()信号的状态如下:

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


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

我相信
qabstractemview
不知道如何处理您定义的自定义数据-它根本不需要它。它是否需要它肯定取决于您的实现?让我们重新表述一下问题:“为什么视图需要处理用户定义的角色?”。可以使用标准角色访问所有视图需求,除非它不是自定义视图。