版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第教你如何用一行Python代码实现GUI图形界面目录1、选择文件夹2、选择文件3、选择日期4、输入文本5、弹窗无按钮6、弹窗无标题7、弹窗只有OK按钮8、弹窗只有Error按钮(红色)9、显示通知窗口10、弹窗选择11、自定义弹窗12、实战GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。
一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率。
比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的。
所以开发一个图形化的小窗口,就变得很有必要。
今天,小F就给大家介绍如何只用一行Python代码制作一个GUI。
主要使用Python的PySimpleGUI库来完成这个工作。
#安装PySimpleGUI
pipinstallPySimpleGUI-i/pypi/simple
详细的接口文档地址。
1、选择文件夹
首先导入PySimpleGUI库,并且用缩写sg来表示。
importPySimpleGUIassg
#窗口显示文本框和浏览按钮,以便选择一个文件夹
dir_path=sg.popup_get_folder("SelectFolder")
ifnotdir_path:
sg.popup("Cancel","Nofolderselected")
raiseSystemExit("Cancelling:nofolderselected")
else:
sg.popup("Thefolderyouchosewas",dir_path)
通过使用PySimpleGUI的popup_get_folder()方法,一行代码就能实现选择文件夹的操作。
示例如下
点击Browse按钮,选择文件夹,文本框就会显示出文件夹的绝对路径。
点击OK按钮,显示最终选择的路径信息,再次点击OK按钮,结束窗口。
如果没有选择文件夹,而是直接点击OK按钮,会直接提示没有选取文件夹。
2、选择文件
选择文件操作和上面选择文件夹的有点相似。
#窗口显示文本框和浏览按钮,以便选择文件
fname=sg.popup_get_file("ChooseExcelfile",multiple_files=True,file_types=(("ExcelFiles","*.xls*"),),)
ifnotfname:
sg.popup("Cancel","Nofilenamesupplied")
raiseSystemExit("Cancelling:nofilenamesupplied")
else:
sg.popup("Thefilenameyouchosewas",fname)
不同的是,选择文件可以设置multiple_files(是否为多个文件)和file_types(文件类型)参数。
示例如下
选择了多个Excel文件,最终结果返回了所有文件的路径地址。
3、选择日期
使用popup_get_date()方法,显示一个日历窗口。
#显示一个日历窗口,通过用户的选择,返回一个元组(月,日,年)
date=sg.popup_get_date()
ifnotdate:
sg.popup("Cancel","Nodatepicked")
raiseSystemExit("Cancelling:nodatepicked")
else:
sg.popup("Thedateyouchosewas",date)
示例如下
选择好日期后,点击OK按钮,即可返回日期元组结果。
4、输入文本
使用popup_get_text()方法,显示一个文本输入框。
#显示文本输入框,输入文本信息,返回输入的文本,如果取消则返回None
text=sg.popup_get_text("Pleaseenteratext:")
ifnottext:
sg.popup("Cancel","Notextwasentered")
raiseSystemExit("Cancelling:notextentered")
else:
sg.popup("Youhaveentered",text)
键入信息,示例如下
点击OK按钮,返回输入的文本信息。
如果没有输入,直接点击OK按钮,会提示没有文本输入。
5、弹窗无按钮
#显示一个弹窗,但没有任何按钮
sg.popup_no_buttons("Youcannotclickanybuttons")
结果如下
6、弹窗无标题
#显示一个没有标题栏的弹窗
sg.popup_no_titlebar("Averysimplepopup")
结果如下
7、弹窗只有OK按钮
#显示弹窗且只有OK按钮
sg.popup_ok("Youcanonlyclickon'OK'")
结果如下
8、弹窗只有Error按钮(红色)
#显示弹窗且只有error按钮,按钮带颜色
sg.popup_error("Somethingwentwrong")
结果如下
9、显示通知窗口
#显示一个“通知窗口”,通常在屏幕的右下角,窗口会慢慢淡入淡出
sg.popup_notify("Taskdone!")
结果如下,Taskdone提示信息淡入淡出。
10、弹窗选择
#显示弹窗以及是和否按钮,选择判断
answer=sg.popup_yes_no("Doyoulikethisvideo")
sg.popup("Youhaveselected",answer)
结果如下
11、自定义弹窗
上面那些弹窗都是库自带的,如果想自定义创建,可以参考下面的方法。
#自定义创建弹窗,一行代码完成
choice,_=sg.Window(
"Continue",
[[sg.T("Doyouwanttosubscribetothischannel")],[sg.Yes(s=10),sg.No(s=10),sg.Button('Maybe',s=10)]],
disable_close=True,
).read(close=True)
sg.popup("Yourchoicewas",choice)
结果如下
12、实战
最后来个综合实战案例,将某个文件夹下所有的Excel文件中的sheet表,一一保存为单独的Excel文件。
代码如下,需要安装xlwings库,其中pathlib库是内置的。
frompathlibimportPath
importPySimpleGUIassg
importxlwingsasxw
#选择输入文件夹
INPUT_DIR=sg.popup_get_folder("Selectaninputfolder")
ifnotINPUT_DIR:
sg.popup("Cancel","Nofolderselected")
raiseSystemExit("Cancelling:nofolderselected")
else:
INPUT_DIR=Path(INPUT_DIR)
#选择输出文件夹
OUTPUT_DIR=sg.popup_get_folder("Selectanoutputfolder")
ifnotOUTPUT_DIR:
sg.popup("Cancel","Nofolderselected")
raiseSystemExit("Cancelling:nofolderselected")
else:
OUTPUT_DIR=Path(OUTPUT_DIR)
#获取输入文件夹中所有xls格式文件的路径列表
files=list(INPUT_DIR.rglob("*.xls*"))
withxw.App(visible=False)asapp:
forindex,fileinenumerate(files):
#显示进度
sg.one_line_progress_meter("CurrentProgress",index+1,len(files))
wb=app.books.open(file)
#提取sheet表为单独的Excel表格
forsheetinwb.sheets:
wb_new=app.books.add()
sheet.copy(after=wb_new.sheets[0])
wb_new.sheets[0].delete()
wb_new.save(OUTPUT_DIR/f"{file.stem}_{}.xlsx")
wb_new.close()
sg.popup_ok("Taskdone!")
首先选择输入文件夹和输出文件夹的地址。
然后通过pathlib库对输入文件夹进行遍历,查找出所有xls格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 那只可爱的小狗家的温馨写物(4篇)
- 不懈努力持续创新承诺书范文5篇
- 学校体育工作承诺书(4篇)
- 心包穿刺置管术的呼吸机应用与护理
- 生态行动实效环保承诺书范文7篇
- 云计算技术解决方案开发指南
- 商品供货承诺书6篇范文
- 内分泌科护理感染控制
- 季度工作总结与经验教训反思报告
- 《纳税实务》-第四章
- 2026北京航空航天大学 机械工程及自动化学院聘用编专职事务助理、F岗招聘1人考试备考题库及答案解析
- 网络安全培训教材与教学大纲(标准版)
- 医学人文培训课件
- 学堂在线 雨课堂 学堂云 科研伦理与学术规范 期末考试答案
- 2026年商丘学院单招(计算机)测试模拟题库附答案
- 机场防鸟撞培训大纲
- 医院培训课件:《中医护理文书书写规范》
- 涉外侵权课件
- 国企合规风控培训课件
- 肿瘤科医疗质量与安全管理
- 2025年体育彩票考试题目及答案
评论
0/150
提交评论