新蔡县住房和城乡建设局网站,南昌租房网地宝网,乐陵seo网站优化,专业建设网站的个人博客#xff1a;苏三有春的博客 系列往期#xff1a; PyQt5实战——多脚本集合包#xff0c;前言与环境配置#xff08;一#xff09; 布局
2.1 UI页面布局
整体框架分为分为三个部分#xff0c;垂直分布。 第一个部分为功能选择按钮#xff08;如UTF-8转换#… 个人博客苏三有春的博客 系列往期 PyQt5实战——多脚本集合包前言与环境配置一 布局
2.1 UI页面布局
整体框架分为分为三个部分垂直分布。 第一个部分为功能选择按钮如UTF-8转换翻译器等 第二部分为功能区即对应功能输入输出展示区 第三部分为后台区显示对应的后台信息本质上是将终端输出的print重定向至这块区域方便调试以及使用
除此之外整体的下方状态信息栏中有版本信息
整体布局如下图所示 tips
这个界面是直接在vscode中运行时所展示的因此图标以及部分按钮并未完全列装不保证debug与打包一致的原因较为复杂与pyinstaller的版本有关后续内容会解释图标列装后如下所示 2.2 工程布局
在创作自己的程序前如果是较大的程序最好需要规划一下自己的工程结构用多个不同的目录保存不同的资源如图像文本代码等而代码中实现不同功能的subprograms子程序也可以再细分在不同的目录中尤其是可以多个subprogram子程序反复调用的subprograms子程序或scripts脚本。
我的工程布局意识也是在这个项目中不断完善的还有一些不足和错误的地方也在不断更新中。
一级目录 MyScriptTools目录是包目录为了方便管理我们需要用到的各种包文件需要在项目开始时便创建好该项目python运行的虚拟环境虚拟环境具体的创建流程看前文。创建完成后使用pip包管理器下载的所有包都会保存在这个包目录中。因为我的虚拟环境名字叫MyScriptTools因此包目录的名字也叫MyScriptToolssrc是存放代码的位置所有的代码都存放在这个目录下workspaces目录是运行时创建的保存文件目录因为我的项目中有一些功能或脚本会产生新的文件我希望它们被保存在一个统一的空间看起来不会太过混乱因此专门设计了这一个功能在程序运行时创建一个workspaces目录以后若产生新的文件统一保存在workspaces目录下BingTranslator.py与test.py是两个测试脚本目前已经失去了作用
src目录 Classes该目录下存放着各种功能的功能区UI类error类等如TranslatorClass.py为翻译功能的UI设计包括按钮文本框的布局等component该目录下存放着修改组件样式的方法如editStyle.py文件中存放着修改QLineEdit样式的方法以及修改QTextEdit样式的方法。这样如果有多个QLineEdit组件需要修改样式时只需要调用其中的方法即可。dist该目录是使用pyinstaller将程序打包成exe可执行文件时生成的exe可执行文件存放在其中res该目录下存放着需要使用的图片图标等资源文件tools该目录下存放着脚本以及功能的实现如实现翻译的功能方法存放在tools目录下的translation.py文件中Classes目录下的TranslatorClass.py文件中会调用translation.py文件来实现功能xxx.spec该文件是如果打包时使用了–onefile参数即打包生成一个单独的exe文件则会产生该文件该文件记录了一些打包时需要关注的信息icon.ico图标文件可要可不要如果不要在打包时想要生成exe文件的图标时需要指定图标的路径我懒得指定路径只想填个名字就把图标放在与main.py同一目录下main.py该文件时程序的入口与C程序的main相同。打包时需要指定程序入口即该文件PrimeWindow.py主UI框架即主窗口上面Classes中的UI仅为功能区UI属于主窗口的三部分之一
2.3 布局思想
我的布局思想是在不断碰壁的过程中自己摸索出来的在开发这个程序之初并没有想把它做成一个完整的具有UI界面的功能集合包因此一开始并没有工程布局的概念需要做什么便在src下新建一个文件开始编码这种习惯的弊端在随着程序愈发庞大而变得愈发清晰使程序越来越难管理且开发难度增大。之后抽时间将程序整理了一遍便形成了这种布局。个人观念仅供参考。
我的工程布局思想主要遵循两个原则
归类
相同属性或相同功能或本质相同的文件放在一个目录下如图片文本等文件属于输入文件只可被调用因此放在同一目录res下当然res下可再做区分imgicontxt等。不同的功能区UI可放在同一目录下这样可以将primeWindow与功能UI区分开来且方便primeWindow调用功能UI来实现功能的切换。功能的实现放在tools目录下classes可以调用tools下相应的功能。tools目录下部分功能过于复杂无法用一个文件完成也可以再建立子目录。
重复调用
如果遇到需要反复调用的功能可集成出来单独形成一个方法单独存放方便不同文件的调用而不需要重复实现如文本框单行文本框按钮等样式实现选择文件等功能