QSortFilterProxyModel未在QTreeView中显示第二列

时间:2016-02-13 06:29:30

标签: c++ qt4 qtreeview qsortfilterproxymodel

我从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);

输出:(缺少第二栏中的数据)

enter image description here

1 个答案:

答案 0 :(得分:0)

我弄明白了这个问题......

我使用的是QStyledItemDelegate,我从中派生了一个类并重写了paint函数。

在pain函数中,我指的是我的原始模型..但是,在过滤的情况下,该模型是NULL,我应该使用我创建的代理模型。