找回密码
 会员注册
查看: 26|回复: 0

python与上位机开发day04

[复制链接]

6

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2024-9-5 22:31:34 | 显示全部楼层 |阅读模式
模块和包、异常、PyQt5一、模块和包1.1模块Python中模块就是一个.py文件,模块中可以定义函数,变量,类。模块可以被其他模块引用1.1.1导入模块"""导入格式1:import模块名使用格式:模块名.函数模块名.类名模块名.变量名"""importutilsprint(utils.name)print(utils.sum(1,3))print(utils.Person("zhangsi",18))#导入格式2:from模块名import需使用的函数、类、变量#使用格式:函数、类、变量无需通过模块名引用fromutilsimportname,sum,Personprint('---'*30)print(name)res=sum(1,8)print(res)print(Person("mike",20))#导入格式3:from模块名import*#使用格式:函数、类、变量无需通过模块名引用fromutilsimport*print(name)print(sum(1,9))12345678910111213141516171819202122232425262728291.1.2导入冲突"""通过as重命名,可以解决冲突from模块名import变量as别名1,函数as别名2,类as别名3"""fromutilsimportnameasuname,sumasusum,PersonasuPersonfromsumimportnameassname,sumasssumprint(uname)print(sname)print(usum(1,9))print(ssum(8,1))12345678910111213141.1.3__name__作用说明把导入模块不被执行的代码放在if__name__=='__main__'里面#导入模块,会执行1次文件里面的代码defsum(a,b):returna+b#程序的入口if__name__=='__main__':res=sum(1,8)print(res)123456789'运行运行1.2包包是一个特殊的文件夹,文件夹里包含一个__init__.py模块主要用于管理代码包主要用于管理模块__init__.py主要写一下初始化的代码或导模块的语句,如果没有这部分需求,此文件可以没有包的创建在PyCharm中支持直接创建包,工程根目录上鼠标右键->New->ythonPackage1.2.1导入包中模块"""说明:导入方式有很多,后面使用的时候,先查先用即可方式1:导入格式:import包名.模块名包名就是文件夹名模块名就是文件里某个文件名字使用格式:包名.模块名.工具名(类名、函数、变量)方式2:导入格式:from包名.模块名import工具名使用格式:工具名(类名、函数、变量)"""importpk.calacprint(pk.calac.name)print(pk.calac.sum(10,9))print("=========import包名.模块名==========")importpkg3.calacprint(pkg3.calac.sum(9,5))print("=========from包名.模块名import工具名==========")frompkg3.calacimport*print(name)print(sum(8,2))print("=========from")frompkg3.calacimportname,sum,Personprint(name)print(sum(8,2))print("=========")1234567891011121314151617181920212223242526272829303132331.3系统的内置模块二、异常处理2.1异常介绍什么是异常?程序在运行过程中,发生了未知的事件,影响到了程序的正常运行异常是一种事件异常会影响到程序正常运行2.2捕获异常为了保证程序正常运行2.2.1捕获异常try-except"""try:可能发生异常的代码exceptExceptionas异常对象名:#Exception:为系统提供的异常类,凡是未知错误类型,都可以尝试使用该异常类进行异常类型匹配print(异常对象名)即可获取异常的信息描述说明:1.如果希望程序无论出现任何错误,都不会因为Python解释器抛出异常而被终止,可以捕获Exception2.exceptExceptionase:e表示捕获到的异常对象,记录异常的错误信息,e为惯用变量名,可以自定义需求:1.提示用户输入一个整数-用户输入的可能不是一个整数2.使用8除以用户输入的整数并且输出-0不能做除数"""#a=10#b=0#try:#res=a//b##except:#print("有异常")#tryexceptExceptionasxxx捕获异常可以输出异常信息#a=10#b=0#try:#res=a//b##exceptExceptionase:#print(e)#Exception会捕获各类错误信息ase可以输出错误信息e是变量名称可以自定义#try:##pygame.init()#num=int(input(''))#exceptExceptionaserr:#print(err)a=10b=0lst=[1,2,3,4,5]#所有的错误信息都有一个父类叫做BaseExceptiontry:res=lst[6]#exceptZeroDivisionErrorasz:exceptIndexErrorasz:print(z)print("======")1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556572.2.2捕获异常完整语法"""应用场景:1.成功打开文件的前提下,后面读写文件,不管有没有异常,最终都要关闭文件2.成功连接网络的前提下,后面发送或接收网络数据,不管有没有异常,最终都要断开连接try:可能发生异常的代码except:处理异常的代码else:没有发生异常,except不满足执行elsefinally:不管有没有异常,最终都要执行需求:1.获取用户输入的数字,转换为int2.如果输入不是整数,转换会产生异常,提示输入错误3.如果是整数,则进一步判断是奇数还是偶数4.最终提示:程序运行结束"""try:num=int(input('请输入一个整数'))exceptValueErrorasV:print(V)else:print("你输入的数",num)finally:print("程序运行结束")12345678910111213141516171819202122232425262728293031'运行运行2.3自定义异常2.3.1常见的异常类型介绍2.3.2自定义异常class自定义异常名(Exception):def__init__(self,msg):self.msg=msgdef__str__(self):returnself.msg123456'运行运行三、PyQt53.1PyQt5简介和环境搭建PyQt是一套Python的GUI开发框架,即图形用户界面开发框架其中PyQt是Qt(C++语言实现的)为Python专门提供的扩展PySide官网:https://doc.qt.io/qtforpython-6/插件安装pipinstall插件名字 #安装pipuninstall插件名字 #卸载pipinstall插件名字-i指定下载的镜像网址pipshow插件名字 #查看插件名字#安装PyQt5pipinstallPyQt5-ihttps://pypi.tuna.tsinghua.edu.cn/simple#安装Qt工具软件pipinstallPyQt5-tools-ihttps://pypi.tuna.tsinghua.edu.cn/simple#安装PyQt5语法检测包(可选)pipinstallPyQt5-stubs-ihttps://pypi.tuna.tsinghua.edu.cn/simple#安装PyQt5帮助文档(可选)pipinstallPyQtdoc-ihttps://pypi.tuna.tsinghua.edu.cn/simple#查看安装版本pipshowPyQt5pipshowPyQt5-toolspipshowPyQt5-stubs1234567891011121314151617如果安装了帮助文档,帮助文档所在位置帮助文档配置教程(点我😊)3.2第一个Qt程序3.2.1第一个Qt窗口"""#0.导入模块#1.创建应用程序#2.创建窗口#3.显示窗口#4.等待窗口停止"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223243.2.2窗口的相关设置"""#设置窗口#设置窗口尺寸#设置图标#鼠标停留在控件上时就会显示ToolTip的信息"""importsys#导包模块fromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w=QWidget()#设置w.setWindowTitle("QQ开发版")#窗口大小w.resize(800,600)#设置气泡提示w.setToolTip("这是一个窗口")#展示w.show()#等待中止sys.exit(app.exec_())123456789101112131415161718192021222324252627282930313.3常用控件3.3.1标签QLabel3.3.1.1显示文字"""#创建QLabel标签对象#设置文本内容#指定主窗口为父对象,标签放在主窗口上"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()###后续的创建按钮文本图像等等都是放到这里#显示文字#创建QLabel标签对象label=QLabel()#设置文本内容label.setText("Hello你好呀")label.move(100,100)print(label.text())#指定主窗口为父对象,标签放在主窗口上label.setParent(w)#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333.3.1.2显示图片"""#创建QLabel标签对象#创建QPixmap对象#设置标签图片#指定主窗口为父对象,标签放在主窗口上#根据图片大小设置窗口大小"""importsysfromPyQt5.QtGuiimportQPixmap,QIconfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()pixmap=QPixmap("img/img.png")#设置程序的icon#windows设置w.setWindowIcon(QIcon(pixmap))#创建QLabel标签对象label=QLabel()#创建QPixmap对象pixmap=QPixmap("img/img.png")#设置标签图片label.setPixmap(pixmap)#指定主窗口为父对象,标签放在主窗口上label.setParent(w)#根据图片大小设置窗口大小w.resize(pixmap.width(),pixmap.height())#显示窗口w.show()#等待中止sys.exit(app.exec_())12345678910111213141516171819202122232425262728293031323334353637383940413.3.2输入框3.3.2.1单行输入框QLineEdit"""#创建QLineEdit对象#设置默认提示语#设置内容为"helloworld"#设置最大输入的长度#获取文本内容#设置输入框的回显模式:密码模式#指定父对象"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QLineEdit对象edit=QLineEdit()#设置默认提示语edit.setPlaceholderText("请输入你的银卡卡账号:")#设置内容为"helloworld"edit.setText("9527")#设置最大输入的长度edit.setMaxLength(10)#获取文本内容print(edit.text())##设置输入框的回显模式:密码模式edit.setEchoMode(edit.Password)#指定父对象edit.setParent(w)#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333435363738393.3.2.2多行输入框QTextEdit"""#创建QTextEdit对象#设置提示内容#设置默认内容#设置内容#获取内容#清空内容#指定父对象"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QTextEdit对象txt=QTextEdit()#设置提示内容txt.setPlaceholderText("请输入你的履历")#设置默认内容txt.setText("Helloworld")#设置内容txt.setText("Hello")#获取内容print(txt.toPlainText())#清空内容txt.clear()#指定父对象txt.setParent(w)#显示窗口w.show()#等待中止sys.exit(app.exec_())123456789101112131415161718192021222324252627282930313233343536373839403.3.3按钮QPushButton"""#创建QPushButton对象#设置按钮的文本内容#获取按钮的文本内容#指定父对象"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QPushButton对象btn=QPushButton()#设置按钮的文本内容btn.setText('点击抽奖')#获取按钮的文本内容print(btn.text())#指定父对象btn.setParent(w)#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303.4信号和槽3.4.1按钮的信号与槽某些控件(部件)按下了,产生一个信号(事件)(理解为硬件的中断,实际上是软件层的中断)信号来了,处理信号对应的槽函数步骤1)要处理什么信号2)信号绑定的(连接的)对应槽函数3)定义槽函数(普通函数)3.4.2系统的信号和槽函数#按钮被点击了,调用关闭窗口的槽函数importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QPushButton对象btn=QPushButton()#设置按钮的文本内容btn.setText('点击抽奖')#获取按钮的文本内容print(btn.text())#指定父对象btn.setParent(w)deffunc():print("中奖五百万!")#方式1:自定义槽函数btn.clicked.connect(func)#方式2:槽函数为匿名函数#关闭窗口btn.clicked.connect(w.close)#显示窗口w.show()#等待中止sys.exit(app.exec_())123456789101112131415161718192021222324252627282930313233343536373.5布局3.5.1水平布局QHBoxLayout"""#创建QHBoxLayout对象#添加5个QPushButton控件#窗口添加布局"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QHBoxLayout对象layout=QHBoxLayout()#添加5个QPushButton控件btn1=QPushButton("按钮1")btn2=QPushButton("按钮2")btn3=QPushButton("按钮3")btn4=QPushButton("按钮4")btn5=QPushButton("按钮5")text=QLineEdit()#按钮添加到布局中layout.addWidget(btn1)layout.addWidget(btn2)layout.addWidget(btn3)layout.addWidget(btn4)layout.addWidget(btn5)layout.addWidget(text)#窗口添加布局setLayoutw.setLayout(layout)#btn1.move(50,50)#btn2.move(80,80)#btn3.move(100,100)#btn4.move(150,150)#btn1.setParent(w)#btn2.setParent(w)#btn3.setParent(w)#btn4.setParent(w)#btn5.setParent(w)w.resize(800,600)#显示窗口w.show()#等待中止sys.exit(app.exec_())123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051523.5.2竖直布局QVBoxLayout"""#创建QVBoxLayout对象#添加5个QPushButton控件#窗口添加布局"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QHBoxLayout对象layout=QVBoxLayout()#添加5个QPushButton控件btn1=QPushButton("按钮1")btn2=QPushButton("按钮2")btn3=QPushButton("按钮3")btn4=QPushButton("按钮4")btn5=QPushButton("按钮5")text=QLineEdit()#按钮添加到布局中layout.addWidget(btn1)layout.addWidget(btn2)layout.addWidget(btn3)layout.addWidget(btn4)layout.addWidget(btn5)layout.addWidget(text)#窗口添加布局setLayoutw.setLayout(layout)w.resize(800,600)#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333435363738394041424344453.5.3表单布局QFormLayout"""#创建QFormLayout对象form=QFormLayout()#创建用户名QLineEdit对象user=QLineEdit()#创建密码QLineEdit对象pwd=QLineEdit()#密码QLineEdit对象设置密码属性pwd.setEchoMode(pwd.Password)#创建手机号QLineEdit对象tel=QLineEdit()#QFormLayout对象添加addRow用户名、密码、手机号控件form.addRow("user",user)form.addRow("pwd",pwd)form.addRow("tel",tel)#创建QPushButton对象btn=QPushButton("注册")form.addRow("",btn)#QPushButton对象信号clicked绑定自定义槽函数on_submitdegfunction():passbtn.clicked.connect(function)#槽函数on_submit实现功能:分别获取用户名、密码、手机号文本内容#QFormLayout对象添加addRow按钮#窗口设置布局w.setLayout(form)"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#设置formlayoutform=QFormLayout()#创建用户名QLineEdit对象单行文本user=QLineEdit()#创建密码QLineEdit对象pwd=QLineEdit()#密码QLineEdit对象设置密码属性pwd.setEchoMode(pwd.Password)#创建手机号QLineEdit对象tel=QLineEdit()#创建QPushButton对象btn=QPushButton("注册信息")#QFormLayout对象添加addRow用户名、密码、手机号控件#QFormLayout对象添加addRow按钮form.addRow("用户名:",user)form.addRow("密码:",pwd)form.addRow("手机号:",tel)#form.addRow("注册",btn)form.addRow("",btn)#将layout设置到窗口w.setLayout(form)#槽函数on_submit实现功能:分别获取用户名、密码、手机号文本内容defon_submit():print(user.text(),pwd.text(),tel.text())#QPushButton对象信号clicked绑定自定义槽函数on_submitbtn.clicked.connect(on_submit)#w.resize(640,480)#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980813.5.4嵌套布局"""#创建QHBoxLayout对象h_layout#创建QVBoxLayout对象v_layout1,添加一个QPushButton对象1#h_layout添加v_layout1对象#创建QVBoxLayout对象v_layout2,添加QPushButton对象2,QPushButton对象3#h_layout添加v_layout2对象#创建QVBoxLayout对象v_layout3,添加QPushButton对象4,QPushButton对象5,QPushButton对象6#h_layout添加v_layout3对象#创建QVBoxLayout对象v_layout4,添加QPushButton对象7,QPushButton对象8,QPushButton对象9,QPushButton对象10#h_layout添加v_layout4对象#窗口添加布局h_layout"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QHBoxLayout对象h_layout(整个水平布局)h_layout=QHBoxLayout()#创建QHBoxLayout对象v_layout1,添加一个QPushButton对象1整个水平布局中的第一个水平布局layout1v_layout1=QHBoxLayout()btn1=QPushButton("btn1")btn2=QPushButton("按钮1")v_layout1.addWidget(btn1)v_layout1.addWidget(btn2)#h_layout添加v_layout1对象h_layout.addLayout(v_layout1)#创建QVBoxLayout对象v_layout2,添加QPushButton对象2,QPushButton对象3v_layout2=QVBoxLayout()v_layout2.addWidget(QPushButton("btn2"))v_layout2.addWidget(QPushButton("btn3"))#h_layout添加v_layout2对象h_layout.addLayout(v_layout2)#创建QVBoxLayout对象v_layout3,添加QPushButton对象4,QPushButton对象5,QPushButton对象6v_layout3=QVBoxLayout()v_layout3.addWidget(QPushButton("btn4"))v_layout3.addWidget(QPushButton("btn5"))v_layout3.addWidget(QPushButton("btn6"))#h_layout添加v_layout3对象h_layout.addLayout(v_layout3)#创建QVBoxLayout对象v_layout4,添加QPushButton对象7,QPushButton对象8,QPushButton对象9,QPushButton对象10v_layout4=QVBoxLayout()v_layout4.addWidget(QPushButton("按钮7"))v_layout4.addWidget(QPushButton("按钮8"))v_layout4.addWidget(QPushButton("按钮9"))v_layout4.addWidget(QPushButton("按钮10"))#h_layout添加v_layout4对象h_layout.addLayout(v_layout4)#窗口添加布局h_layoutw.setLayout(h_layout)#显示窗口w.show()w.resize(800,600)#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859603.6对话框3.6.1消息对话框QMessageBox"""#创建QPushButton对象btn#btn信号clicked绑定槽函数#槽函数中弹出消息QMessageBox对话框,并设置消息对话框的、内容、按钮,选择对话框后做出响应判断#btn指定父对象"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QPushButton对象btn=QPushButton()#设置按钮的文本内容btn.setText('点击抽奖')#获取按钮的文本内容print(btn.text())#指定父对象btn.setParent(w)#创建QPushButton对象btn#btn信号clicked绑定槽函数defbtn_click():res=QMessageBox.information(w,'中奖信息',"请确认协议内容",QMessageBox.Yes|QMessageBox.No)ifres==QMessageBox.Yes:print("ok")#槽函数中弹出消息QMessageBox对话框,并设置消息对话框的、内容、按钮,选择对话框后做出响应判断#btn指定父对象btn.clicked.connect(btn_click)#显示窗口w.show()#等待中止sys.exit(app.exec_())12345678910111213141516171819202122232425262728293031323334353637383940413.6.2输入对话框QInputDialog"""#创建QVboxLayout对象layout#创建QLabel对象label#label设置内容"匿名"#layout添加label#创建QPushButton对象btn#btn设置内容"创建角色"#layout添加btn#btn的信号clicked连接槽函数show_dialog#槽函数中创建QInputDialog对象,获取用户输入的内容,给label设置内容#窗口添加布局"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建QVboxLayout对象layoutlayout=QVBoxLayout()#创建QLabel对象labellabel=QLabel()#label设置内容"匿名"label.setText("匿名")#layout添加labellayout.addWidget(label)#创建QPushButton对象btnbtn=QPushButton()#btn设置内容"创建角色"btn.setText("创建角色")#layout添加btnlayout.addWidget(btn)#btn的信号clicked连接槽函数show_dialogdefshow_dialog():res,flag=QInputDialog.getText(w,"","请创建角色")ifflag:print("创建角色成功:",res)btn.clicked.connect(show_dialog)#槽函数中创建QInputDialog对象,获取用户输入的内容,给label设置内容#窗口添加布局w.setLayout(layout)#显示窗口w.show()#等待中止sys.exit(app.exec_())12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455563.7单、复选框3.7.1单选框QRadioButton"""#创建QRadioButton对象btn1,设置内容"男"#创建QRadioButton对象btn2,设置内容"女"#设置btn2为选中状态#创建QButtonGroup对象group,将btn1和btn2添加到group#group的信号buttonToggled连接槽函数on_group_toggled#槽函数参数为QRadioButton对象,里面打印被按下按钮的文本,打印选中状态#创建VBoxLayout对象layout,将btn1和btn2添加到layout#窗口添加布局"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建VBoxLayout对象layout,将btn1和btn2添加到layoutlayout=QHBoxLayout()#创建QRadioButton对象btn1,设置内容"男"radio=QRadioButton("男")#创建QRadioButton对象btn2,设置内容"女"radio2=QRadioButton("女")#设置btn2为选中状态radio2.setChecked(True)#group的信号buttonToggled连接槽函数on_group_toggled#槽函数参数为QRadioButton对象,里面打印被按下按钮的文本,打印选中状态#创建VBoxLayout对象layout,将btn1和btn2添加到layoutlayout.addWidget(radio)layout.addWidget(radio2)#窗口添加布局w.setLayout(layout)#定义槽函数defon_toggled():ifradio.isChecked():print("男被选中")ifradio2.isChecked():print("女被选中")#信号绑定radio.toggled.connect(on_toggled)radio2.toggled.connect(on_toggled)#显示窗口w.show()#等待中止sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253543.7.2复选框QCheckBox"""#创建QCheckBox对象box1,并设置文本为“学习”#创建QCheckBox对象box2,并设置文本为“睡觉”#创建QCheckBox对象box3,并设置文本为“工作”#box1、box2、box3的信号statusChanged和槽函数box_slot绑定#槽函数判断是否被选中#创建QHBoxLayout对象layout,并添加box1、box2、box3#窗口添加布局"""importsysfromPyQt5.QtWidgetsimport*#创建应用程序app=QApplication(sys.argv)#创建窗口w就是我们创建的窗口对象w=QWidget()#创建VBoxLayout对象layout,将btn1和btn2添加到layoutlayout=QHBoxLayout()#创建复选框box1=QCheckBox("语文")box2=QCheckBox("数学")box3=QCheckBox("英语")layout.addWidget(box1)layout.addWidget(box2)layout.addWidget(box3)#槽函数判断是否被选中defbox_slot():ifbox1.isChecked():print("今天上语文课")ifbox2.isChecked():print("下节课上数学")ifbox3.isChecked():print("下节课上英语")#box1、box2、box3的信号statusChanged和槽函数box_slot绑定box1.stateChanged.connect(box_slot)box2.stateChanged.connect(box_slot)box3.clicked.connect(box_slot)#窗口添加布局w.setLayout(layout)#定义槽函数#显示窗口w.show()#等待中止sys.exit(app.exec_())12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061623.8PyQt面向对象开发"""类名:MyWidget继承QWidget实例方法:__init__(self,parent=None):调用父类的__init__(parent)方法,调用初始化窗口init_ui():窗口控件的添加、布局、信号和槽处理程序入口:#1.创建应用程序#2.创建窗口#3.显示窗口#4.等待窗口停止"""importsysfromPyQt5.QtWidgetsimport*#定义我们的widget类classmyWidget(QWidget):def__init__(self,parent=None):super().__init__(parent)#调用init_UIself.init_ui()definit_ui(self):'''初始化ui:return:'''#self.setWindowTitle("设置")if__name__=='__main__':#创建程序appapp=QApplication(sys.argv)w=myWidget()w.show()sys.exit(app.exec_())1234567891011121314151617181920212223242526272829303132333435363738393.9QtDesigner3.9.1配置PyCharm的PyQt工具教程:https://www.yuque.com/icheima/python/qt_designer#aiIoe3.9.2通过Designer设计界面新建ui包打开designer界面新建Widget窗口根据需要拖拽控件,然后保存ui文件转换为python代码注意:每次修改了ui文件,记得保存,然后就得重新把ui文件转换为python代码加载ui文件模板代码导包中模块fromui.ui模块文件名importUi_对象名实例化ui模块对象,调用setupUi()方法3.9.3如何使用ui上面的控件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 05:52 , Processed in 0.530876 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表