Qt 在数据成员函数中隐藏QStandardItemModel行

Qt 在数据成员函数中隐藏QStandardItemModel行,qt,qstandarditemmodel,Qt,Qstandarditemmodel,如何隐藏/排除QStandardItemModel中的整行,而不从模型中物理删除它们 Rational:我不想显示在另一个视图中显示的实体。我已经在data函数中为其提供了一个工作高亮逻辑。我是否可以(轻松地)将其转换为“不显示逻辑”,以便跳过这些行 QVariant CMyModel::data(const QModelIndex &index, int role) const { if (role != Qt::BackgroundRole) { re

如何隐藏/排除
QStandardItemModel
中的整行,而不从模型中物理删除它们

Rational:我不想显示在另一个视图中显示的实体。我已经在
data
函数中为其提供了一个工作高亮逻辑。我是否可以(轻松地)将其转换为“不显示逻辑”,以便跳过这些行

    QVariant CMyModel::data(const QModelIndex &index, int role) const
    {
        if (role != Qt::BackgroundRole) { return CModelBase::data(index, role); }
        .......

        if (model.hasSomeCondition())
        {
           static const QBrush b(Qt::green);
           return b;
        }
        return QVariant();
    }

使用代理模型过滤原始模型怎么样?是的,没错。因此,您不会使用不属于它的逻辑修改原始模型。我可以随时(即通过用户交互)添加/删除代理模型吗?是的。只需调用
view->setModel()
即可显示代理模型或原始模型。或者,您可以将代理模型配置为不过滤任何内容,而不是将其从视图中删除。