我已经创建了SortFilterProxyModel以及QStandardItemModelQTreeView。我只需要显示行,第二列等于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中index的值。

关于c++ - 如何仅显示包含包含来自QStringList的QString的列的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34896876/

10-09 22:45