gpt4 book ai didi

c++ - 通过源模型返回标志使我的项目不活动(灰色)

转载 作者:行者123 更新时间:2023-11-28 08:13:42 27 4
gpt4 key购买 nike

在我的代理模型中,基础 QSortFilterProxyModelflags 中虚方法:

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 上的项目处于非事件状态。为什么?

最佳答案

如果将索引映射到源模型索引会发生什么情况?

Qt::ItemFlags File_List_Proxy::flags(const QModelIndex& index) const
{
return sourceModel()->flags(this->mapToSource(index));
}

因为在我看来索引与同一个模型没有关系,所以它是无效的

关于c++ - 通过源模型返回标志使我的项目不活动(灰色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8354583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com