我们在构建复杂的应用的时候往往会遇到ui界面和外部数据间如何交互的问题。有以下几种方式:
- 将所有的数据都储存在widgets中,但这带来的问题是:当我们想要得到其中的数据并进行更改的时候会非常麻烦,因为在qt中数据不是以python自己的格式储存的。
- 将数据始终保存在外部,每次数据变动时都将其送入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
未完待续