版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Python详细介绍模型封装部署流程目录一、桌面应用软件二、Pyside2Qtdesigner三、模型封装部署四、Pyinstaller五、总结
一、桌面应用软件
桌面应用软件是基于GUI(GraphicalUserInterface,图形用户界面)交互式程序,需要实现GUI库实现前端交互。
Python常见的GUI库
TKinter:基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少;wxPython:基于wxWidgets的Python库,优点是控件比较丰富、缺点是稳定性相对差点、文档少、用户少;pyQT5,Pyside2:基于Qt的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多、缺点是库比较大,发布出来的程序比较大;QtDesigner:Qt是一个1991年由QtCompany开发的跨平台C++图形用户界面应用程序开发框架;PyQT5:RiverbankComputing公司早期的pythonGUI开发工具库,是QT与Python的结合,但并非Qt公司出品,属于义子;Pyside2:2025年7月,Qt公推出的工具库,它提供了对Qt5.12+完整框架的访问,简单点来说就是在Python下使用Qt,即Qt的亲儿子;使用上PyQt5与PySide2差别很小,接口调用几乎一模一样。
程序打包工具:Pyinstaller
下图为Python桌面应用软件开发大体的技术架构。
图1软件技术架构
二、Pyside2Qtdesigner
(1)PySide2控件
图形界面的工具基础:控件(widget)、信号(signal)与槽(solt),控件表示前端界面可显示/操作/交互的元素,如按钮、输入控件、展示控件等,供用户点击、接受用户输入、展示内容、存放其它控件。
PySide2的安装:
pipinstallPySide2-i/simple/
下面为一个PySide2程序的实现流程:
1.定义一个应用
2.定义主窗口
3.定义需要的控件
4.执行应用,进入事件循环
#-*-coding:utf-8-*-
#@filename:01_helloworld.py
#@brief:使用pyside编写第一个软件
fromPySide2.QtWidgetsimportQApplication,QMainWindow,QTextBrowser,QLabel
if__name__=="__main__":
app=QApplication([])#UI应用程序管理应用
#================================================
#1.定义主窗口
window=QMainWindow()
#2.定义文本框显示
label=QLabel(window)
label.setText("HelloWorld!")
#3.窗口显示
window.show()
#================================================
app.exec_()#进入QApplication的事件处理循环
图2PySide2实现第一个GUI界面
(2)PySide2信号(signal)与槽(slot)
用户对图形界面的控件操作就会产生信号,程序应能接收识别信号,并进行相应的处理。特点信号的处理函数称为槽。
按钮被点击时,向程序发出信号,程序自动执行btn_slot函数。
#-*-coding:utf-8-*-
#@filename:02_signalslot.py
#@brief:了解信号与槽
fromPySide2.QtWidgetsimportQApplication,QMainWindow,QPushButton,QLineEdit
if__name__=="__main__":
app=QApplication([])#UI应用程序管理应用
#================================================
#first.定义主窗口
window=QMainWindow()
window.resize(500,400)
window.move(300,310)
#2.定义按钮控件
defbtn_slot():
print("用户点击了按钮,将执行xxx")
btn=QPushButton("我的按钮",window)
btn.clicked.connect(btn_slot)
#3.单行文本框
deftext_slot():
text=text_edit.text()
print("检测到文本框变动,当前文本框信息为:{}".format(text))
text_edit=QLineEdit(window)
text_edit.move(100,0)
text_edit.setPlaceholderText('请输入信息...')
text_edit.textChanged.connect(text_slot)
#窗口显示
window.show()
#================================================
app.exec_()#进入QApplication的事件处理循环
图3PySide2实现第二个GUI界面
(3)常用控件
1.按钮:btn=QPushButton(我的按钮,window)
2.单行文本框:text_edit=LineEdit(window)
3.标签显示:label=QLabel(window)
4.文件选择:path_file,filetype=QFileDialog.getOpenFileName(window,选取文件,./,AllFile(*);;TextFiles(*.jpg))
(4)QtDesigner
QtDesigner可以通过拖曳的方式完成复杂的界面设计,完成控件设计。QtDesigner生成的UI界面是一个后缀为.ui的文件,其实是一个XML文件。通过使用pyuic5命令将.ui文件转换成.py文件,然后将.py文件引入到自定义的Python代码中。主要分为以下四步:
安装:随着pyside2安装时,自动安装启动:Python安装目录下Scripts\pyside2-designer.exe转换:pyside2-uicxxx.uixxx.py使用:在QMainWindow中初始化xxx.py中的控件,然后定义槽函数
图4QtDesigner设计流程
三、模型封装部署
封装--面向对象三大特性之一,面向对象(ObjectOrientedProgramming)的三大特性如下:
封装(Encapsulation):隐藏对象的属性和实现细节,仅对外提供公共访问方式;继承(Inheritance):使用已存在的类定义作为基础建立新类的方法;多态(Polymorphism):多种状态,接口的多种不同的实现方式即为多态;
类的设计三要素:
类名:这类事物的名字;属性:这类事物具有什么样的特征;方法:这类事物具有什么样的行为;
图5封装模型的过程
类名:Predictor;属性:model,path_ckpt,device,transform;方法:preprocess,inference,get_model,get_transform;
四、Pyinstaller
Pyinstaller是一个用来将Python程序打包成一个独立可执行软件包,支持Windows、Linux和MacOS,Pyinstaller可以读取您编写的Python脚本。
Pyinstaller分析代码执行所需的所有模块,然后将这些文件的副本和Python解释器一起放在单个文件夹中,或者在单个可执行文件中。
Pyinstaller的安装:
pipinstallpyinstaller-i/simple/
软件打包执行命令:pyinstallerxxx.py,完成后到root/dist/xxx下,找到xxx.exe
pyinstallermain.py--noconsole-F-pD:\course_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南昌高考生超详细学车考驾照流程来了
- 北京市海淀中学2026年中考物理最后冲刺模拟试卷含解析
- 四川省乐山四中学2026年中考二模物理试题含解析
- 江苏省苏州市苏州市星港中学2026年中考物理五模试卷含解析
- 2026届扬州地区部分县达标名校中考猜题物理试卷含解析
- 2026届广西南宁市第四十七中学中考冲刺卷物理试题含解析
- 肺癌术后音乐疗法
- 平凉市庄浪县2025-2026学年数学三下期中统考模拟试题含答案
- 2026届湖南省长沙市湘一立信实验校中考物理四模试卷含解析
- 肿瘤病人的护理
- (2025年)上饶市广信区社区网格员招录考试练习题及答案
- 上海市社区工作者考试《综合素质能力测验》真题及答案
- (2026年)五篇《给阿嬷的情书》电影观后感(深度扩充版)
- 八年级语文期末模拟卷·新题素养卷(试题版A4)【测试范围:下册第1-6单元】(新教材统编版)
- 《国际中文教育数字资源建设指南(试行)》
- 2026可穿戴设备用柔性光纤传感器研发进展与商业化前景评估
- 2025年山东济南市八年级地理生物会考真题试卷+答案
- 急性心肌梗死2025诊疗指南课件
- 第14课 我们共同的梦想 课件(内嵌视频)2025-2026学年道德与法治二年级下册统编版
- 2025-2026学年八省八校T8联考2026届高三下册第二次质量检测(4月联合测评)数学试题【附答案】
- 2026中国公路养护行业运行动态及投资效益预测报告版
评论
0/150
提交评论