2.2.4 输入文本
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-05-30 # @Author : carl_DJ import PySimpleGUI as psg "选择日期" # 显示一个日历窗口, 通过用户的选择, 返回一个元组(月, 日, 年) date = psg.popup_get_date() if not date: psg.popup("Cancel", "No date picked") raise SystemExit("Cancelling: no date picked") else: psg.popup("The date you chose was", date)
运行结果
一、静态图
二、动态图
2.2.5 弹窗显示
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-05-30 # @Author : carl_DJ import PySimpleGUI as psg "弹窗" #显示一个弹窗, 但没有任何按钮 psg.popup_no_buttons("You cannot click any buttons") # 显示一个没有标题栏的弹窗 psg.popup_no_titlebar("A very simple popup") # 显示弹窗且只有OK按钮 psg.popup_ok("You can only click on 'OK'") # 显示弹窗且只有error按钮, 按钮带颜色 psg.popup_error("Something went wrong") # 显示一个“通知窗口”, 通常在屏幕的右下角, 窗口会慢慢淡入淡出 psg.popup_notify("Task done!")
运行结果
一、无按钮弹窗
二、无标题栏
三、只有OK按钮
四、只有error按钮
五、通知窗口
2.2.6 弹窗选择
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-05-30 # @Author : carl_DJ import PySimpleGUI as psg "选择弹窗" # 显示弹窗以及是和否按钮, 选择判断 answer = psg.popup_yes_no("Do you like 王心凌?") psg.popup("You have selected", answer)
运行结果
点击 Yes
2.2.7 自定义弹窗
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-05-30 # @Author : carl_DJ import PySimpleGUI as psg "选择弹窗" # 显示弹窗以及是和否按钮, 选择判断 answer = psg.popup_yes_no("Do you like 王心凌?") psg.popup("You have selected", answer)
运行结果
2.3 综合实战
熟悉了各个功能的用法, 我们现在就整合起来, 来一次汇总实战。
目标:将某个文件夹下所有的Excel文件中的sheet表,保存为单独的Excel文件。
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-05-30 # @Author : carl_DJ from pathlib import Path import PySimpleGUI as psg import xlwings as xlw # 选择输入文件夹 INPUT_DIR = psg.popup_get_folder("Select an input folder") if not INPUT_DIR: psg.popup("Cancel", "No folder selected") raise SystemExit("Cancelling: no folder selected") else: INPUT_DIR = Path(INPUT_DIR) # 选择输出文件夹 OUTPUT_DIR = psg.popup_get_folder("Select an output folder") if not OUTPUT_DIR: psg.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): # 显示进度 psg.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() psg.popup_ok("Task done!")
3、总结
今天的分享,就到这里了。
是不是奇奇怪怪的姿势,又增加了呢。
其实Tkinter 和PySimpleGUI 各有利弊。
不管是 Tkinter还是PySimpleGUI,如果工作需要, 必须要掌握一个,
还是有限推荐Tkinter,毕竟是自带库,
当然,我们的知识不能局限于自带库, 扩展知识,才是我们的目的。
关注小鱼博客,带你学习更多关于python第三方库的知识。