在我的代理模型QSortFilterProxyModel
中,基于flags虚拟方法:
Qt::ItemFlags File_List_Proxy::flags(const QModelIndex& index) const
{
if(index.isValid())
{
return QAbstractItemModel::flags(index) |
Qt::ItemIsUserCheckable |
Qt::ItemIsSelectable;
}
else
{
return Qt::NoItemFlags;
}
}
如果函数看起来像上面那样(与模型版本相同......只是复制和粘贴),那么项目将正确显示。但是,如果我将此方法的 def 更改为使用sourceModel():
Qt::ItemFlags File_List_Proxy::flags(const QModelIndex& index) const
{
return sourceModel()->flags(index);
}
...然后我的 listView 上的项目处于非活动状态。为什么?