书库页的设计
前言
前面介绍了题库系统的数据库的数据模型设计,并将其中的各个表的使用做了说明。本节则从第一张表PDF电子书信息表的使用开始来进行视图设计。
书库页
打开软件后,程序会去固定位置查找数据库文件,假如我们已经保存了10本图书的信息在数据库文件的PDF电子书信息表中,就会在首页(即stackview的页面1)上依次显示出这10本图书的封面。
这个功能的实现需要用到Qt的模型视图设计模式。
模型视图简介
模型-视图-控制器(MVC)是一种源自Smalltalk的设计模式,通常在构建用户界面时使用。在设计模式中,Gamma等人写道:
MVC由三种对象组成。模型是应用程序对象,视图是它的屏幕显示,而控制器定义了用户界面对用户输入做出反应的方式。在使用MVC之前,用户界面设计倾向于将这些对象混为一谈。MVC将它们解耦以增加灵活性和重用性。
模型与数据源通信,为体系结构中的其他组件提供接口。通信的性质取决于数据源的类型和模型实现的方式。
视图从模型中获取模型索引,这些是对数据项的引用。通过向模型提供模型索引,视图可以从数据源检索数据项。
在标准视图中,委托呈现数据项。当编辑项时,委托使用模型索引直接与模型通信。
书库页的设计
书库页的数据模型从PDF电子书信息表中获取数据源,然后将模型与QListView视图连接,再使用自定义的代理来将视图的显示方式进行渲染,就可以完成书库排列展示的效果了。
在使用QListView视图控件时,需要改变它的排列方式。默认的排列方式是从上到下以列表的形式排列,而我们想要的书库页面需要从左到右排列,必要时进行换行排列。因此,需要将QListView进行显示模式设置,使用图标模式排列的方式来进行显示以实现这种效果。
领取专属 10元无门槛券
私享最新 技术干货