时间:2022-10-09 18:03:56 | 浏览:368
Python 在运维和办公自动化中扮演着重要的角色,PySimpleGUI 是一款很棒的自动化辅助模块,让你更轻松的实现日常任务的自动化。
1 PySimpleGUI安装
在命令行/终端输入:
pip install pysimplegui
,等待安装完成后,进入python环境,输入import PySimpleGUI
回车无误后,确认安装成功2 PySimpleGUI制作简易弹窗界面
2.1 两种界面设计模式
(1) 单次显示界面(one-shot window)
类似于弹窗,出现一次
常用于提示信息,收集信息
(2)持续显示界面(Persistent window)
持续不断显示,除非用户手动关闭
常作为软件的主界面
官网默认的库的缩写为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会自动弹出第二个窗口)
该类弹窗也有自己特定的参数供选择,比如既然进行输入的操作,有时输入密码时候就不希望别人看到,就可以采用输入的显示方式,如下
测试进行密码隐藏输入,可以直接顺势将用户输入的密码也以弹窗的形式
直接采用sg.popup_get_file
方法,括号里面的内容也是输入的提示语
选择后就会把详细的地址直接显示在输入框中,如下
那么同样该类弹出也有自己的特有属性参数设置,具体如下。里面的每个参数几乎都是超级常用的参数,可以自行测试一下。
默认后缀,这个参数也是常用的,比如在sublime中点击另存为时候,本身是py文件,在给文件命名的时候只需要输出文件名,后缀自动给添加上去了。
2.6 文件夹选择窗口
采用sg.popup_get_folder
方法,括号里面的内容也是输入的提示语。执行程序后会弹出选择文件的窗口,鼠标选择后就会把文件夹的路径添加到输入
采用
方法,括号中输入相关的参数设置内容
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 制作简易压缩软件
软件运行后弹出窗口让用户选择一个文件夹
用户选择后再弹出窗口让用户选择压缩包保存的位置和名称
用户输入完成后将该文件夹内所有的文件进行压缩打包
完成压缩后再弹出一个窗口告诉用户这个压缩包的体积大小
(1)软件运行后弹出窗口让用户选择一个文件夹
popup_get_folder
(2)用户选择后再弹出窗口让用户选择压缩包保存的位置和名称
popup_get_file
save_as=True
default_extension = "zip"
(3)用户输入完成后将该文件夹内所有的文件进行压缩打包
zipfile
模块
(4)完成压缩后再弹出一个窗口告诉用户这个压缩包的体积大小
os.stat
读取文件信息
popup
弹窗显示数据
参考代码:(主要是细节部分,对于压缩路径的设置,需要进行处理一下,不然最后解压缩的会出现很多层级的不必要文件夹)
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")
输出结果演示如下:(完美,撒花✿✿ヽ(°▽°)ノ✿
普通程序员,不学算法,也可以成为大神吗?对不起,这个,绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗?就一直当普通程序员吗?如果有一本算法书,看着很轻松……又有代码示例……又有讲解……怎么会有那样的书呢?哎呀,最好学了算法
Python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。它拥有非常小的程序集,非常易于学习、阅读和维护。其解释器可在Windows、Linux 和 Mac OS 等多种操作系统上使用。它的可移植性和可伸缩性
一、数据的表示方式我们都知道,现实生活中,数字的表示方式有很多种,常见的有二进制、八进制、十进制和十六进制。十进制我们都很熟悉,加法口诀表我们都背过,主要是使用0~9,这10个阿拉伯数字来构建整个十进制的体系,其中最核心的法则是“逢十进一”
过几天就是 7 月份了,离苹果的秋季发布会也越来越近,最近 iPhone 14 爆料真不要太多。根据供应链的爆料,这代普通版的 iPhone 14 大概率不换新处理器,全新 A16 处理器将会由 Pro 系列独占...而且 Pro 系列还有
昨天iPhone 14系列中的iPhone 14 Plus手机正式开始首销,此前预定的用户已经在昨天拿到了手机,而手笑道中午时,iPhone 14 Plus已经破发,华南渠道处原价6999元起售的手机现在到手只要6520元左右,跌幅有460
在iPhone14Pro和iPhone14ProMax酷炫的灵动岛下,今年iPhone14的关注度明显不如往年,小幅度升级让其一经发布就被吐槽诚意不足。iPhone14真的不香吗?我也想说一下手上这台iPhone14的体验感受。尺寸上,对比
虽说,几乎每一代iPhone无论是从产品性能、做工甚至是设计都能成为行业中的标杆性产品,但在iPhone庞大的产品线中有些产品咱们还是尽量别去碰,尤其是以下这三款,甭管降价有多猛,产品有多便宜,有多少Up主推荐,大家都要慎入啊!苹果避坑指南
转眼间,已经到了苹果iPhone面世的第16年。从初代iPhone到现在的iPhone13系列,给我们带来了许多经典与回忆。但让许多朋友不解的是,在手机像素动辄过亿的时代,iPhone依旧坚持1200万像素的“初心”。回首初代iPhone,