使用后端列表对QAbstractListModel排序 我有一个QuastListMeod派生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; };

使用后端列表对QAbstractListModel排序 我有一个QuastListMeod派生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; };,c++,qt,qml,qsortfilterproxymodel,qabstractlistmodel,C++,Qt,Qml,Qsortfilterproxymodel,Qabstractlistmodel,然后我有一个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

然后我有一个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;
    }

现在,我想对我的列表进行排序,我的列表已经过QSortFilterProxyModel,但无法确定如何将QSortFilterProxyModel与我当前的体系结构相匹配,因为我已注册为qml类型。

如果需要从qml进行排序,我建议。是的,我们需要将其添加到Qt中:
 qmlRegisterType<MyList >("MyList", 1, 0, "MyListModel");
 engine->rootContext()->setContextProperty("backend", backend);
ListView {
   model: MyListModel {
        backend: backend
    }
}