我从QSortFilterProxyModel继承了一个类,以支持在我的代码中过滤分层树。
我在下面添加了代码。过滤完成后,第二列中的数据不显示......
我无法理解为什么......
任何人都可以帮助我吗?
此外,当过滤完成后,树会折叠...我想在过滤完成时在树上调用expandAll。是否有一些信号被发出或某些函数被调用,我知道过滤已完成?
课堂宣言
:infinity
用法:
class MySortFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
public:
MySortFilterProxyModel(QObject *parent = 0);
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
bool ShowThis(const QModelIndex index) const;
private:
};
定义:
_proxyModel = new MySortFilterProxyModel(this);
_proxyModel->setFilterKeyColumn(-1);
_proxyModel->setSourceModel(_directiveTreeModel);
输出:(缺少第二栏中的数据)
答案 0 :(得分:0)
我弄明白了这个问题......
我使用的是QStyledItemDelegate,我从中派生了一个类并重写了paint函数。
在pain函数中,我指的是我的原始模型..但是,在过滤的情况下,该模型是NULL,我应该使用我创建的代理模型。