如何只显示包含QStringList中包含QStrings的列的行?

时间:2016-01-20 10:00:24

标签: c++ qt qstandarditemmodel qsortfilterproxymodel

我与SortFilterProxyModelQStandardItemModel一起创建了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?)
}

1 个答案:

答案 0 :(得分:1)

您应该继承QSortFilterProxyModel,然后重新实现protected方法virtual bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const。在重新实现的方法中,您可以检查QStringList内的索引值。