百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

用 Python 库 PySimpleGUI 制作自动化办公小软件

off999 2024-09-18 22:33 47 浏览 0 评论

Python 在运维和办公自动化中扮演着重要的角色,PySimpleGUI 是一款很棒的自动化辅助模块,让你更轻松的实现日常任务的自动化。

1 PySimpleGUI安装

在命令行/终端输入:pip install pysimplegui,等待安装完成后,进入python环境,输入import PySimpleGUI回车无误后,确认安装成功

2 PySimpleGUI制作简易弹窗界面

2.1 两种界面设计模式

私信小编01即可获取大量Python学习资源

(1) 单次显示界面(one-shot window)

  • 类似于弹窗,出现一次
  • 常用于提示信息,收集信息

(2)持续显示界面(Persistent window)

  • 持续不断显示,除非用户手动关闭
  • 常作为软件的主界面

2.2 制作弹窗

官网默认的库的缩写为sg,使用时建议保持统一,也是使用sg


弹窗类型:(第一种和第二种是一致的)

  • sg.popup('注意!')
  • sg.popup_ok('默认弹窗')
  • sg.popup_yes_no('带Yes和No按钮的弹窗')
  • sg.popup_cancel('带cancel按钮的弹窗')
  • sg.popup_ok_cancel('带OK和cancel按钮的弹窗')
  • sg.popup_error('带红色error按钮的弹窗')
  • sg.popup_auto_close('几秒后自动关闭的弹窗')

最后一个执行后程序会在2s左右自动退出,除了以上的简单的默认函数外,还可以手动设置参数,相关的参数如下


比如设置一个定制化的小窗口,进行相关参数的添加

sg.popup(
  '这是弹窗',
  title='Hello',
  button_color=('#A81B0C', '#FFFFFF'),
  background_color='#F47264',
  line_width=2,
  custom_text=' 好的 '
)

输出结果:(第一个参数就是要显示的信息,可以是单个,也可多个字符串,多个字符串时候,默认换行,如果是单个字符串可以通过line_with指定每行的宽度)


当第一个参数是多个字符串时,自动换行显示(由于自动的窗体长宽很小,所以标题就没有看到,但不是代表不显示,下面的示例中就可以看到)

2.3 文字内容弹窗

采用popup_scrolled()方法,括号中添加要显示的内容即可

text = '''大家好,
我们一起来学习PySimpleGUI制作简单的图形用户界面。'''
sg.popup_scrolled(text,title='Hello')

输出结果为:(这里的标题就正常的显示出来了)


这个文字内容弹窗里面也有相关的设置参数,可以根据自己的需要进行设置,参数如下:(注意之前的弹窗的参数也可以在这类弹窗中使用,比如刚刚用的title)

2.4 获取用户输入的弹窗

采用popup_get_text()方法,括号内容有点类似input()语句中的提示语,提醒用户输入

text1 = sg.popup_get_text('请输入文字1')
print(text1)
text2 = sg.popup_get_text('请输入文字2')
print(text2)

输出结果为:(当点击Ok时候控制台输出端就会获取到用户输入的文字,如果是点击Cancel,输出端为None,这里执行了两次用户输入弹出的指令,当第一次输入后点击Ok会自动弹出第二个窗口)


该类弹窗也有自己特定的参数供选择,比如既然进行输入的操作,有时输入密码时候就不希望别人看到,就可以采用输入的显示方式,如下


测试进行密码隐藏输入,可以直接顺势将用户输入的密码也以弹窗的形式

2.5 文件选择弹出窗口

直接采用sg.popup_get_file()方法,括号里面的内容也是输入的提示语


选择后就会把详细的地址直接显示在输入框中,如下


那么同样该类弹出也有自己的特有属性参数设置,具体如下。里面的每个参数几乎都是超级常用的参数,可以自行测试一下。


默认后缀,这个参数也是常用的,比如在sublime中点击另存为时候,本身是py文件,在给文件命名的时候只需要输出文件名,后缀自动给添加上去了。

2.6 文件夹选择窗口

采用sg.popup_get_folder()方法,括号里面的内容也是输入的提示语。执行程序后会弹出选择文件的窗口,鼠标选择后就会把文件夹的路径添加到输入

2.7 进度条弹窗

采用sg.one_line_progress_meter()方法,括号中输入相关的参数设置内容

for i in range(1000):
  sg.one_line_progress_meter(
    '进度条',
    i + 1,
    1000,
    '该进度条key',
    '这是一个进度条'
  )

输出结果为:(会进行动态加载,直到达到100%)


当然此类弹窗也有自己特有的参数设置,如下。比如常见的设置竖直的还横向的,滚动条的上下限等。


比如尝试一下不同参数的组合输出

for i in range(1, 1000):
  sg.one_line_progress_meter(
    '进度条',
    i + 1,
    1000,
    '该进度条key',
    '这是一个进度条',
    orientation='h',
    bar_color=('#F47264', '#FFFFFF')
  )

输出结果为:

3 制作简易压缩软件

3.1 功能需求

  • 软件运行后弹出窗口让用户选择一个文件夹
  • 用户选择后再弹出窗口让用户选择压缩包保存的位置和名称
  • 用户输入完成后将该文件夹内所有的文件进行压缩打包
  • 完成压缩后再弹出一个窗口告诉用户这个压缩包的体积大小

3.2 功能拆解

(1)软件运行后弹出窗口让用户选择一个文件夹

  • popup_get_folder()

(2)用户选择后再弹出窗口让用户选择压缩包保存的位置和名称

  • popup_get_file()
  • save_as=True
  • default_extension = 'zip'

(3)用户输入完成后将该文件夹内所有的文件进行压缩打包

  • zipfile模块

(4)完成压缩后再弹出一个窗口告诉用户这个压缩包的体积大小

  • os.stat()读取文件信息
  • popup()弹窗显示数据

3.3 全部代码

参考代码:(主要是细节部分,对于压缩路径的设置,需要进行处理一下,不然最后解压缩的会出现很多层级的不必要文件夹)

import PySimpleGUI as sg
import zipfile
import os




folder = sg.popup_get_folder('请选择要压缩的文件夹')
zip_path = sg.popup_get_file(
  '请选择要保存的压缩包位置',
  save_as=True,
  default_extension='zip',
  file_types=(('压缩包', '.zip'), )
)


with zipfile.ZipFile(zip_path, 'w') as zipobj:
  for file in os.scandir(folder):
    zipobj.write(file.path, file.path.replace(folder, '.'))


zip_size = os.stat(zip_path).st_size // 1024
sg.popup(f'压缩包体积大小为:{zip_size} KB')

输出结果演示如下:(完美,撒花??ヽ(°▽°)ノ?

相关推荐

手机万能mp4转换器(手机万能mp4转换器下载)

1你需要先下载并安装一个叫格式工厂的软件。2然后打开->mp4。3点击添加文件的选项。4然后选择需要转换的视频,点击确定。5点击确定之后,再添加到转换列表中就可以。6再点...

迅雷beta官网(迅雷beta官方网)

若手机不能安装软件/游戏,建议:1.检查“未知来源”设置是否开启。2.查看下载的软件格式是否为机器所支持的。安卓系统手机支持的软件格式为.APK格式。3.下载软件时请阅读软件详情,查看是否对机器操作系...

私人家庭影院hd免费版游戏评测

《海上钢琴师》是由朱塞佩·托纳托雷执导,蒂姆·罗斯、比尔·努恩、梅兰尼·蒂埃里主演的剧情、音乐、爱情片。该片讲述了一个被命名为“1900”的弃婴在一艘远洋客轮上与钢琴结缘,成为钢琴大师的传奇故事。该片...

题库网(题库网站有哪些)

学科网的试卷有续费的和不需要交费的两类试卷,如果你是学科网的用户,可以下载试卷,还可以组卷,对于我们一线的老师来讲,这很方便的,只要学校肯出钱,在学科网前,全校的老师就可以注册免费试用学科,网上所有的...

类似迅雷的下载器有哪些(手机下载工具app)

推荐闪电下载和黑科技下载这两款APP手机上取代迅雷的下载器有闪电下载APP和黑科下载器APP等,以这两款为例,它们都是可以支持ed2k、磁力链等下载方式,也能够支持多种不同类似的文件的高速下载。、BT...

qq号申请免费注册官网(qq注册账号免费申请网址)

你好,通用的申请QQ号码的方法如下:1、首先打开腾讯官网。2、在腾讯页面左边的通信工具里面点击号码。3、点击号码以后就会进入QQ注册页面。4、进入QQ注册页面以后,在昵称后面输入要注册号码的名字。5、...

安卓安装windows(安卓安装apk解析包出错)

oppo手机支持安卓和Windows操作系统,但是双系统安装需要手机支持虚拟化技术(VT)。如果手机支持VT,可以在电脑上安装虚拟化软件,然后在手机上运行VT兼容的虚拟化应用程序,从而实现在电脑上安装...

安全中心下载(网易安全中心下载)

可以通过解除保护模式页面,查看QQ帐号进入保护模式的原因,及获取恢复QQ帐号正常使用的方法。点击小i,然后把自动登录选项去掉,打开safari,随便点一个网页,去登录。畅游经常这样抽风,可以关了游戏...

重装系统步骤(USB重装系统步骤)

正版的win10及以上系统,现在已经都自带系统重置功能,可以一键重置恢复到出厂设置。1.按住win+i,在弹出的windows设置对话框中,点击更新和安全选项,在弹出的设置对话框中,点击左侧的恢复选项...

qq群发软件手机版免费(qq群发软件安卓版免费下载)

分享一个可以免费试用的软件,“www.liaotiangou.com”在做微信营销的时候经常会需要使用到群发功能,出了多群群发之外,还有定时群发,甚至是定时发送朋友圈。多群群发可以解决以前最多只能群发...

小说排行榜2020前十名(耿美小说排行榜2020前十名)

1、元龙《元龙》是目前2020年哔哩哔哩国创动漫热门榜的第一名,讲述的是一名来自现代的王牌狙击手,穿越到了玄幻的元魂世界,从此展开的一系列热血的战斗与机遇,成为元魂世界的霸者的故事。2、灵笼《灵笼》是...

万能wifi密码查看器(wifi万能密码查看神器)

极速版Wifi的好。万能Wifi锁匙极速版的内存小,节约流量,操作简便,还可以连接手机在户外共享网络信息,是一款性价比很高的索要产品。不过要根据自己的实际情况做出正确的选择才好。首先需要一个安卓机,拿...

造梦西游5(造梦西游5论坛)

1、迅速做完主线任务和支线任务主线、支线任务存在于底部的【任务】里,要找对位置!任务上有【可接】两个字样,说明还没接受相应的任务!你看过一个【化世桥】就有接近10W的经验,何乐而不为,所以想尽快升级就...

office免费永久激活密钥(office免费永久激活密钥irm)

回答如下:Office2019永久激活密钥可以用于激活MicrosoftOffice2019产品,包括Word、Excel、PowerPoint、Outlook、Access、Publisher等...

可以加微信的交友软件(50至60岁交友微信群)

如果您想在寻爱APP中添加微信好友,可以按照以下步骤进行操作:1.打开寻爱APP,在APP主界面找到您想要添加好友的用户的信息。2.点击该用户的头像或昵称,进入该用户的详细资料页面。3.在详细资...

取消回复欢迎 发表评论: