如何只显示包含来自 QStringList 的 QString 的列的行?

How to only show rows with columns that contain QStrings from a QStringList?

我创建了一个 SortFilterProxyModel 以及一个 QStandardItemModel 和一个 QTreeView。我只需要显示行,其中第二列等于我的 QStringList 中的值之一。谁能告诉我该怎么做?我想到了 setFilterFixedString,但这只适用于单个 QString,不适用于列表...

我的代码:

#include "dicomtagsproxymodel.h"


DicomTagsProxyModel::DicomTagsProxyModel(QObject *parent) : QSortFilterProxyModel(parent)
{
}

DicomTagsProxyModel::~DicomTagsProxyModel(void)
{
}

bool DicomTagsProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
    QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent);

    if (sourceModel()->data(index1).toString() == HOW TO GET THE VALUES OF MY STRINGLIST HERE?)
}

您应该子类化 QSortFilterProxyModel,然后重新实现 protected 方法 virtual bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const。在重新实现的方法中,您可以检查 QStringList.

中的索引值