怎么用一行python代码实现gui图形界面-mile米乐体育
怎么用一行python代码实现gui图形界面
本篇内容介绍了“怎么用一行python代码实现gui图形界面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
主要使用python的pysimplegui库来完成这个工作。
#安装pysimpleguipipinstallpysimplegui-ihttps://mirror.baidu.com/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()方法,显示一个文本输入框。
#显示文本输入框,输入文本信息,返回输入的文本,如果取消则返回nonetext=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!")
结果如下, task done提示信息淡入淡出。
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库是内置的。
frompathlibimportpathimportpysimpleguiassgimportxlwingsasxw#选择输入文件夹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}_{sheet.name}.xlsx")wb_new.close()sg.popup_ok("taskdone!")
首先选择输入文件夹和输出文件夹的地址。
然后通过pathlib库对输入文件夹进行遍历,查找出所有xls格式文件的路径地址。
点击ok按钮后,就会开始表格转换,操作如下。
使用了one_line_progress_meter()方法显示程序处理的进度。
20表示有20次循环,原始excel文件总计有20个,需要处理20次,其他的都在上图中标示出来咯。
“怎么用一行python代码实现gui图形界面”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!