问题描述
我有一个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 (将#修改为@)