用后端列表对QAbstractListModel进行排序

问题描述

我有一个QAbstractListModel派生的C ++类。

class MyList : public QAbstractListModel
{
    Q_OBJECT
public:
    MyList();
 enum {
        SelectedRole,displayNameRole,AddressRole
};

     QVariant data(const QModelIndex& index,int role = Qt::displayRole) const override;

    bool setData(const QModelIndex& index,const QVariant& value,int role = Qt::EditRole) override;

    private:
    BackEnd backend;
};

然后我有一个BackEnd.cpp,它可以向MyList类对象添加删除项目

class BackEnd : public QObject {
        // adds item of type MyList to mItems
       bool setItemAt(int index,const Item& item);
    
    private:
    // this has items of type MyList. (i.e QAbstractListModel)
        QVector<Item> mItems;
    }

在Main.cpp中,我注册MyList类型,并将后端设置为qml根上下文

 qmlRegisterType<MyList >("MyList",1,"MyListModel");
 engine->rootContext()->setContextProperty("backend",backend);

在我使用过的QML中

ListView {
   model: MyListModel {
        backend: backend
    }
}

现在,我想对列表进行排序,并通过了QSortFilterProxyModel,但是由于我已注册为qml类型,因此无法弄清楚如何将QSortFilterProxyModel与当前的体系结构配合。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)