在重写TreeviewfilterAcceptsRow过滤事件时,在一个TreeView下面有多个节点,如何实现点击一个复选框,只筛选当前节点下面的内容,并且在不选中复选框情况下,恢复原始数据
问题相关代码,请勿粘贴截图
bool filter = QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
if (filter)
{
return true;
}
else
{
// check all decendant's
QModelIndex source_index = sourceModel()->index(source_row, 0, source_parent);
for (int k=0; k<sourceModel()->rowCount(source_index); k++)
{
if (filterAcceptsRow(k, source_index))
{
return true;
}
}
}
return false;
运行结果及报错内容
运行结果可以实现对整个treeview实现过滤,但无法对单个节点下的内容进行过滤