PyQt5教程-Martin ModelView架构


我们在构建复杂的应用的时候往往会遇到ui界面和外部数据间如何交互的问题。有以下几种方式:

  1. 将所有的数据都储存在widgets中,但这带来的问题是:当我们想要得到其中的数据并进行更改的时候会非常麻烦,因为在qt中数据不是以python自己的格式储存的。
  2. 将数据始终保存在外部,每次数据变动时都将其送入widgets或者直接将widgets重新加载。这可能导致我们大部分时间都在摆弄我们的数据,而且无法很好的控制我们的widgets。

Qt提供了ModelViews架构,来解决上面的问题。

Model View Controller

MVC是在构建应用时常用的架构安排,其将应用分为3个部分:

  • Model,app内部使用的数据格式
  • View,最终显示给用户的数据样式,可以有多个
  • Controller,其接受用户的输入,并将其转换到Model或View

Qt认为View和Controller之间的界定有点模糊,索性就将其两者合并,称为了Model/ViewController架构,或者叫做Model View架构。

Model View

  • Model:储存数据,可以返回单个或多个records,以及相关的元数据。
  • View:从model中请求数据并将其展示在widgets中。

示例:a Todo List

未完待续


文章作者: Luyiyun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Luyiyun !
评论
评论
  目录