文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用一行Python代码实现GUI图形界面

2023-06-30 15:02

关注

本篇内容介绍了“怎么用一行Python代码实现GUI图形界面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

主要使用Python的PySimpleGUI库来完成这个工作。

# 安装PySimpleGUIpip install PySimpleGUI -i https://mirror.baidu.com/pypi/simple

1、选择文件夹

首先导入PySimpleGUI库,并且用缩写sg来表示。

import PySimpleGUI as sg # 窗口显示文本框和浏览按钮, 以便选择一个文件夹dir_path = sg.popup_get_folder("Select Folder")if not dir_path:    sg.popup("Cancel", "No folder selected")    raise SystemExit("Cancelling: no folder selected")else:    sg.popup("The folder you chose was", dir_path)

通过使用PySimpleGUI的popup_get_folder()方法,一行代码就能实现选择文件夹的操作。

示例如下

怎么用一行Python代码实现GUI图形界面

点击Browse按钮,选择文件夹,文本框就会显示出文件夹的绝对路径。

点击OK按钮,显示最终选择的路径信息,再次点击OK按钮,结束窗口。

怎么用一行Python代码实现GUI图形界面

如果没有选择文件夹,而是直接点击OK按钮,会直接提示没有选取文件夹。

2、选择文件

选择文件操作和上面选择文件夹的有点相似。

# 窗口显示文本框和浏览按钮, 以便选择文件fname = sg.popup_get_file("Choose Excel file", multiple_files=True, file_types=(("Excel Files", "*.xls*"),),)if not fname:    sg.popup("Cancel", "No filename supplied")    raise SystemExit("Cancelling: no filename supplied")else:    sg.popup("The filename you chose was", fname)

不同的是,选择文件可以设置multiple_files(是否为多个文件)和file_types(文件类型)参数。

示例如下

怎么用一行Python代码实现GUI图形界面

选择了多个Excel文件,最终结果返回了所有文件的路径地址。

3、选择日期

使用popup_get_date()方法,显示一个日历窗口。

# 显示一个日历窗口, 通过用户的选择, 返回一个元组(月, 日, 年)date = sg.popup_get_date()if not date:    sg.popup("Cancel", "No date picked")    raise SystemExit("Cancelling: no date picked")else:    sg.popup("The date you chose was", date)

示例如下

怎么用一行Python代码实现GUI图形界面

选择好日期后,点击OK按钮,即可返回日期元组结果。

4、输入文本

使用popup_get_text()方法,显示一个文本输入框。

# 显示文本输入框, 输入文本信息, 返回输入的文本, 如果取消则返回Nonetext = sg.popup_get_text("Please enter a text:")if not text:    sg.popup("Cancel", "No text was entered")    raise SystemExit("Cancelling: no text entered")else:    sg.popup("You have entered", text)

键入信息,示例如下

怎么用一行Python代码实现GUI图形界面

点击OK按钮,返回输入的文本信息。

如果没有输入,直接点击OK按钮,会提示没有文本输入。

5、弹窗无按钮

# 显示一个弹窗, 但没有任何按钮sg.popup_no_buttons("You cannot click any buttons")

结果如下

怎么用一行Python代码实现GUI图形界面

6、弹窗无标题

# 显示一个没有标题栏的弹窗sg.popup_no_titlebar("A very simple popup")

结果如下

怎么用一行Python代码实现GUI图形界面

7、弹窗只有OK按钮

# 显示弹窗且只有OK按钮sg.popup_ok("You can only click on 'OK'")

结果如下

怎么用一行Python代码实现GUI图形界面

8、弹窗只有Error按钮(红色)

# 显示弹窗且只有error按钮, 按钮带颜色sg.popup_error("Something went wrong")

结果如下

怎么用一行Python代码实现GUI图形界面

9、显示通知窗口

# 显示一个“通知窗口”, 通常在屏幕的右下角, 窗口会慢慢淡入淡出sg.popup_notify("Task done!")

结果如下, Task done提示信息淡入淡出。

怎么用一行Python代码实现GUI图形界面

10、弹窗选择

# 显示弹窗以及是和否按钮, 选择判断answer = sg.popup_yes_no("Do you like this video?")sg.popup("You have selected", answer)

结果如下

怎么用一行Python代码实现GUI图形界面

11、自定义弹窗

上面那些弹窗都是库自带的,如果想自定义创建,可以参考下面的方法。

# 自定义创建弹窗, 一行代码完成choice, _ = sg.Window(    "Continue?",    [[sg.T("Do you want to subscribe to this channel?")], [sg.Yes(s=10), sg.No(s=10), sg.Button('Maybe', s=10)]],    disable_close=True,).read(close=True)sg.popup("Your choice was", choice)

结果如下

怎么用一行Python代码实现GUI图形界面

12、实战

最后来个综合实战案例,将某个文件夹下所有的Excel文件中的sheet表,一一保存为单独的Excel文件

代码如下,需要安装xlwings库,其中pathlib库是内置的。

from pathlib import Pathimport PySimpleGUI as sgimport xlwings as xw # 选择输入文件夹INPUT_DIR = sg.popup_get_folder("Select an input folder")if not INPUT_DIR:    sg.popup("Cancel", "No folder selected")    raise SystemExit("Cancelling: no folder selected")else:    INPUT_DIR = Path(INPUT_DIR) # 选择输出文件夹OUTPUT_DIR = sg.popup_get_folder("Select an output folder")if not OUTPUT_DIR:    sg.popup("Cancel", "No folder selected")    raise SystemExit("Cancelling: no folder selected")else:    OUTPUT_DIR = Path(OUTPUT_DIR) # 获取输入文件夹中所有xls格式文件的路径列表files = list(INPUT_DIR.rglob("*.xls*")) with xw.App(visible=False) as app:    for index, file in enumerate(files):        # 显示进度        sg.one_line_progress_meter("Current Progress", index + 1, len(files))        wb = app.books.open(file)        # 提取sheet表为单独的Excel表格        for sheet in wb.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("Task done!")

首先选择输入文件夹和输出文件夹的地址。

然后通过pathlib库对输入文件夹进行遍历,查找出所有xls格式文件的路径地址。

怎么用一行Python代码实现GUI图形界面

点击OK按钮后,就会开始表格转换,操作如下。

怎么用一行Python代码实现GUI图形界面

使用了one_line_progress_meter()方法显示程序处理的进度。

怎么用一行Python代码实现GUI图形界面

20表示有20次循环,原始Excel文件总计有20个,需要处理20次,其他的都在上图中标示出来咯。

“怎么用一行Python代码实现GUI图形界面”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯