教你如何用一行Python代码实现GUI图形界面_第1页
教你如何用一行Python代码实现GUI图形界面_第2页
教你如何用一行Python代码实现GUI图形界面_第3页
教你如何用一行Python代码实现GUI图形界面_第4页
教你如何用一行Python代码实现GUI图形界面_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第教你如何用一行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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论