用Qt和QSortFilterProxyModel实现不同的视图
Implementing different views with Qt and QSortFilterProxyModel
我目前正在使用Qt和QML为嵌入式系统编写一个AVOD门户应用程序的原型。
基本上,我有一个媒体目录(音乐、流媒体、电影等)。我计划根据用户的选择,对媒体有不同的看法:- 查看所有媒体
- 只查看电影媒体
- 仅查看音乐等
为此,我计划实现一个QAbstractListModel
来实现我的整个目录。然后,我计划根据用户的选择实现不同的QSortFilterProxyModel
对象来过滤显示(参见。上图).
我一直在使用MVC与Qt一段时间,但我从来没有使用代理模型。因此,在进入代码之前,我想知道它是否是一个可靠的解决方案,如果它适合模型集成到QML ?
z我想知道这是否是一个可靠的解决方案,如果它适合模型集成到QML?
是,是。
代理模型是在幕后查询其他模型的模型。一个模型是一个代理,这是一个实现细节,对模型的用户(例如视图)是不可见的。从模型用户的角度来看,作为代理的模型没有什么特别之处。一个代理模型"只是"一个QAbstractItemModel
加上一些方便的代码,如果你碰巧从一个代理基类派生。
换句话说,代理模型没有太多:它必须满足放在QAbstractItemModel
上的所有需求,因为它是一个。
所以,是的,你的方法会成功。
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 视图中的参数推导失败:take_while
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 范围修剪视图实现不适用于反向视图
- 当用户在键盘上按住 CTRL 键时,如何在树视图中的 Qt 中实现多选?
- 使用范围V3视图来实现begin()/end()方法
- 如何在派生视图类中实现 CView::OnUpdate
- 如何使用 Win32/WTL 实现列表视图的缩放
- 了解Qt视图模型架构:何时创建以及如何在QAbstractItemModel实现中清除索引
- 模型视图控制器实现QT
- 用Qt和QSortFilterProxyModel实现不同的视图
- 使用 cocos2d-x 3.6 实现滚动视图
- 如何实现网格/平铺图像视图与滚动在BB10