怎么用一行Python代码实现GUI图形界面
怎么用一行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图形界面”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!
推荐阅读
-
python多行注释符号怎么表示
python多行注释符号怎么表示这篇文章主要介绍“python多行...
-
python支持的操作系统是什么
python支持的操作系统是什么这篇文章主要介绍“python支持...
-
python如何判断列表为空
python如何判断列表为空这篇文章主要介绍“python如何判断...
-
Python如何利用D3Blocks绘制可动态交互的图表
-
2021年度编程语言揭晓
-
PPython:PHP 拥抱 Python 的利器
-
哪种Python IDE最适合你?这里有一份优缺点列表
-
Python分隔字符串函数用法split
aaa,bbb=str.split(‘&&’,2)第一个参数为分隔符第二个参数是要完成的最大拆分数...
-
php安全编程——python测试实例编写
-
神奇的Python模块:pdfkit,将Python抓取的网址内容保存pdf文件