系列文章目录
待续文章目录
一、前言
在学习PyQt过程,希望有那么一款产品可以帮我实现部分通用界面部分,以提高开发效率,可是找寻很久没有找到。我经过2年多学习和项目实践后,终于决定开始本项目研发,用以解决我当时的困惑。
二、PyQt开发难点
在2018年初学Pyqt时,由于不得入门法则最终放弃;2019年重新开始学习,发现国内的书籍讲得非常浅显,经过这几年开发过程总结PyQt开发难点:
1.逻辑与UI分离
对于刚开始学习界面开发者,很容易把界面元素与逻辑混乱使用而不自知。更有甚者一个把在逻辑代码包含大量界面布局代码。这种搞法的代码,对后期维护非常不利。
2.UI布局设计
解决UI分离的之后,下一个难点就是UI布局。如何让界面上的控件在界面放大缩小过程,保持相对稳定。
3.界面整体构建
界面整体布局元素有:标题栏、项目栏、菜单、主界面、底部如何构建布局,并且切合项目特性以及用户者习惯。
4.界面快速调试
界面开发过程,需要不断修改代码,常规操作步骤是编写一点代码之后,关闭界面,重新打开界面进行调试。这种操作步骤效率非常低,特别是遇到界面加载内容过多,启动耗时的时候,这种步骤严重影响开发效率。
5.项目发布
打包工具的选择,我对比了pyinstaller、nuitka两款。pyinstaller使用简单易用,安全性相对nuitka来说低、打包程序运行性能差一些;nuitka存在的优势也不特别明显,并且nuitka入门门槛要高很多。
打包后如何调试、遇到问题如何解决都是打包面临待解决问题。
6.安全策略加固
项目打包后,需要解决以下几点破解风险:
1.数据库密码被破解
2.项目代码被破解
3.安装限制跳过
三、框架构思(脚手架)
在初期使用PyQt过程,提出脚手架概念,很少有人去思考。脚手架思维来源web开发中。这里不敞开说。本项目想要解决的只是开发过程中一小点问题:如果快速把分散的子界面集合成一个项目。言外之意就是:协助开发多个子界面,之后集成为一个项目。四、功能介绍
1.脚手架界面
整体布局元素有顶部栏、菜单栏、主界面、底部栏四个布局效果入如下:
2.菜单管理
通过菜单管理,可以把子界面配置到脚手架之中来。按照二级菜单布局进行管理子界面的弹出按钮
3.无边框界面
去除PyQt界面边框,自定义标题栏、放大缩小关闭按钮、重写边框缩放事件。
4.调试开关
在界面运行过程,按一个快捷键,即可重写把更新的代码加载界面中来,提高调试效率。
5.自带常用界面
当前已经实现机构管理、用户管理两个常规界面
六、项目demo
项目demo地址:PyQt快速开发架构demo
敬请原谅:由于在项目安全策略还没有做好之前,演示版本使用时间有一点限制。
觉得这个产品就是你想要找的,那么请入群(541339181)领取更新的测试版本,也可以付费定制开发加Q:327097413。
七、项目应用
demo只是一个产品展示,如何应用到自己的项目中,这里先留一个话题。当前大致提一下方式:1. 修改res/dts/下个两个excel文件(未来提供数据库版本之后,可以通过界面配置菜单);2.核心代码有main.pyd/callMain.pyd,再加上一个入口程序就可以集成构架出一个可以快速调试的脚手架项目(具体在后期会公布项目源码)。八、未来功能
在第一版发布之后,能够获得大家认可之后,未来可能会开发更多功能:
例如:Pyd批量转换、项目相关名称自行更换、新增不同菜单样式(顶部菜单、右边菜单)、子界面关闭按钮样式调整(当前使用的是PyQt自带的容器解决的)等。
九、项目意义
本项目如果是给自己使用,存在的价值非常低,没有必要去开发。存在的意义:解决部分学习者入门问题。提高使用PyQt信心。有一年开发经验之后,完全可以自行构架本项目类似脚手架。