在前面的《Python开发》中主要介绍了FastAPI的后端Python开发,以及基于WxPython的跨平台GUI的开发过程,由于PySide6/PyQt6 在GUI的用途上也有很大的优势,因此把原先完成的WxPython 开发框架改造成利用PySide6/PyQt6实现Python跨平台GUI框架的开发过程,本篇随笔介绍它们之间项目联系和不同,主要针对PySide6/PyQt6 的特性进行不同的分解介绍。
1、技术架构体系--一个中央,多个前端
基于PySide6/PyQt6实现的 Python跨平台桌面端GUI框架,和WxPython的跨平台桌面端一样,都是是整个架构体现的一部分,一个Web API中央,同时提供多个接入的终端,如下架构图所示。
PySide6 和 PyQt6 开发上基本上已经趋向大同,很多时候只需要替换一下前面的定名空间即可,因此PySide6 和 PyQt6 开发上已没有多少差别,QT的官方已经把PySide作为Python的GUI 标准案例进行文档介绍了。
其中的Python + FastAPI项目是一个Web API的项目,为各个前端提供接口的后端项目,其界面主动整合Swagger的文档界面,如下所示。
单个模块包含很多通用的接口,通用的接口能满足90%以上的功能需求,以及一些额外的自界说接口。如下是客户信息模块的接口列表。
该后端接口接纳统一的接口协议,具有统一的协议规范和界说。标准协议如下所示。- {
- "success": false,
- "result": T ,
- "targetUrl": "string",
- "UnAuthorizedRequest": false,
- "errorInfo": {
- "code": 0,
- "message": "string",
- "details": "string"
- }
- }
复制代码 联合泛型的方式,这样界说可以很好的抽象不同的业务类接口到基类BaseApi中,这样增删改查等处理的接口都可以抽象到BaseApi内里了。
权限模块我们涉及到的用户管理、机构管理、角色管理、菜单管理、功能管理、利用日志、登录日志等业务类,那么这些类继承BaseApi,就会具有干系的接口了,如下所示继承关系。
因此在前端、后端都可以广泛的利用基类抽象的方式,实现绝大多数接口的封装处理。
2、PySide6/PyQt6实现Python跨平台的桌面前端的基类设计
对于桌面前端,由于大多数情况下,界面的体现逻辑可以利用不同的规则进行抽象,如自界说控件、列表界面、弹出对话框界面等,我们把它抽象出来进行不同的处理。子类界面进行肯定程度的扩张即可获得更好的利用、更简化的代码。
对于自界说控件,我们对其封装,使之可以或许在开发利用风俗上更一致,下面是我们根据需要对常见的原生控件进行一些自界说控件的封装列表。
自界说控件在提供一致的接口上,也可以更有效的提供一些特殊接口,如简化字典数据的绑定处理等。
对于列表和对话框界面的封装,可以或许简化对泛型模子数据的统一处理,因此可以简化继承子类的代码,提供代码维护开发和维护的效率。
3、PySide6/PyQt6实现Python跨平台的桌面前端的界面展示
完成了底子部分的自界说控件、对话框窗口、列表窗体、API调用封装等方面的处理后,就可以基于这些底子上进行界面的开发了。
登录界面效果如下。
和WxPython的跨平台界面效果一样,该框架也是一个多文档管理界面,其中用户管理界面如下所示。
列表包含有有树形列表、条件查询框、通用条件(查询、新增、编辑、删除、导出)等、列表展示、分页导航等内容。这些都是在基类中进行了统一的抽象处理,子类根据需要调整属性或重写干系函数即可实现个性化的界面界说。
树列表或者表格控件,右键可以弹出干系的右键菜单
在列表界面中,选择新增、编辑,会弹出模态对话框进行数据展示或者编辑处理。
参数配置界面效果如下所示
通用字典信息的管理如下所示。
批量新增字典项目界面如下。
系统中统一展示和选择图标的界面如下所示。
其他界面就不再一一介绍,有空再继续细化各个模块的开发总结。
4、WxPython桌面前端的界面展示
对照上面的PySide6/PyQt6实现Python跨平台GUI框架界面,我们把WxPython干系的界面对比一下,先有一个直观的感受。
树列表或者表格数据控件支持右键弹出菜单处理。
在列表界面中,选择新增、编辑,会弹出模态对话框进行数据展示或者编辑处理。
参数配置界面效果如下所示
通用字典信息的管理如下所示。
系统中统一展示和选择图标的界面如下所示。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |