我与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?)
}
答案 0 :(得分:1)
您应该继承QSortFilterProxyModel
,然后重新实现protected
方法virtual bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const
。在重新实现的方法中,您可以检查QStringList
内的索引值。