首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【自制软件】PDF学习宝-开发日记13-书库页的设计

书库页的设计

前言

前面介绍了题库系统的数据库的数据模型设计,并将其中的各个表的使用做了说明。本节则从第一张表PDF电子书信息表的使用开始来进行视图设计。

书库页

打开软件后,程序会去固定位置查找数据库文件,假如我们已经保存了10本图书的信息在数据库文件的PDF电子书信息表中,就会在首页(即stackview的页面1)上依次显示出这10本图书的封面。

这个功能的实现需要用到Qt的模型视图设计模式。

模型视图简介

模型-视图-控制器(MVC)是一种源自Smalltalk的设计模式,通常在构建用户界面时使用。在设计模式中,Gamma等人写道:

MVC由三种对象组成。模型是应用程序对象,视图是它的屏幕显示,而控制器定义了用户界面对用户输入做出反应的方式。在使用MVC之前,用户界面设计倾向于将这些对象混为一谈。MVC将它们解耦以增加灵活性和重用性。

模型与数据源通信,为体系结构中的其他组件提供接口。通信的性质取决于数据源的类型和模型实现的方式。

视图从模型中获取模型索引,这些是对数据项的引用。通过向模型提供模型索引,视图可以从数据源检索数据项。

在标准视图中,委托呈现数据项。当编辑项时,委托使用模型索引直接与模型通信。

书库页的设计

书库页的数据模型从PDF电子书信息表中获取数据源,然后将模型与QListView视图连接,再使用自定义的代理来将视图的显示方式进行渲染,就可以完成书库排列展示的效果了。

在使用QListView视图控件时,需要改变它的排列方式。默认的排列方式是从上到下以列表的形式排列,而我们想要的书库页面需要从左到右排列,必要时进行换行排列。因此,需要将QListView进行显示模式设置,使用图标模式排列的方式来进行显示以实现这种效果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221102A008IQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券