在《PyQt学习随笔:Qt中Model/View相关的主要类及继承关系》介绍了Model/View架构的主要类,在实际使用时,view相关类的对象在Qt Designer中可以直接构建,但Model相关类的对象必须代码实现,那么怎么去构造Model相关的对象与View匹配呢?

其实Model构建的方法与View类别相关,但View类别并不是唯一确认Model构建方法的要素,还要看View中数据的内容。一般来说:

  • 如果是多行单列的字符数据,可以使用QStringListModel来构造Model存储;
  • 如果是多行多列多类型的统一格式的数据,可以使用QStandardItemModel来构建Model存储;
  • 如果是本地文件路径类型的数据,可以使用QDirModel来构建Model存储,也可以使用QFileSystemModel,不过现在Qt也不推荐使用QDirModel,而是建议使用 QFileSystemModel, QFileSystemModel性能比QDirModel高;
  • 如果以上Qt已经实现了的Model’类还不能满足要求,则可以通过QAbstractItemModel或其子类来派生自定义类来创建Model存储。

以上方法中,对于从QAbstractItemModel派生类这种方式对于一般开发来说没有必要,老猿暂时也没有深入研究怎么,但如果对要处理大批量数据且需要展现的则可能要考虑使用这种方式。

老猿Python,跟老猿学Python!

最新文章

  1. iOS之使用模拟器报错:resource fork, Finder information, or similar detritus not allowed
  2. python2不同版本安装json模块
  3. android控件
  4. ACM/ICPC 之 两道dijkstra练习题(ZOJ1053(POJ1122)-ZOJ1053)
  5. 两分钟了解REACTIVEX
  6. Java [leetcode 9] Palindrome Number
  7. 14、AppWidget及Launcher
  8. Linux RSS/RPS/RFS/XPS对比
  9. JAVA THREAD.JOIN方法详解
  10. 怎么用Sublime查找替换整个文件夹下的所有文件内容?
  11. pymssql包安装方法
  12. Python json 读取 json 文件并转为 dict
  13. Selenium基本使用(十一)异常捕获
  14. C#实体对象序列化成Json并让字段的首字母小写的两种解决方法
  15. Python基础之白话说函数
  16. Java 多线程初级汇总
  17. 使用jqprint插件完成页面打印
  18. Android--------从一个包中的Avtivity创建另外另外一个包的Context
  19. jstl foreach 取index
  20. Extend volumn in ubuntu 14.04

热门文章

  1. Spring Security 实战干货:OAuth2授权请求是如何构建并执行的
  2. LeetCode 热题 HOT 100(05,正则表达式匹配)
  3. spark内存管理这一篇就够了
  4. 21迁移python项目到另一台电脑
  5. Docker(33)- 如何修改 docker 容器的端口映射
  6. C++ Split string into vector<string> by space(转)
  7. 信号发送接收函数:sigqueue/sigaction
  8. Java字符类型(详解)
  9. 图解 Spring 循环依赖,写得太好了!
  10. Linux(Centos6.8)配置Nginx环境