如何只显示包含来自 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
.
中的索引值
我创建了一个 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
.