c++ - 使用后端列表对 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, 0, "MyListModel");
engine->rootContext()->setContextProperty("backend", backend);
在 QML 中我使用过
ListView {
model: MyListModel {
backend: backend
}
}
现在我想对我的列表进行排序,并且已经通过了 QSortFilterProxyModel 但无法弄清楚如何将 QSortFilterProxyModel 与我当前的架构相匹配作为我注册为 qml 类型的模型。
解决方案
推荐阅读
- javascript - html 内容在加载开始之前出现
- javascript - 克隆孩子创建循环滚动 jQuery 到 Javascript 的转换
- git - 是否可以在“伞”下保留多个 git 存储库?
- django - 为什么我的测试视图响应没有?
- javascript - 如何在 JS dom 中使用 forEach 选择所有按钮(无 jQuery)
- python - 如何根据第二个文件对一个csv文件进行排序?
- javascript - 在悬停时添加文本,在 svg 圆圈上添加图像,并使节点在 d3 图中的粘性降低
- python - 将 Parquet 转换为 CSV
- antd - ANT-D 表格单元格上的键盘导航
- json - 如何在 Suave 中流式传输大型 json?