Python 库 PySimpleGUI 制作自动化办公小软件的方法

目录
  • 1 PySimpleGUI安装
  • 2 PySimpleGUI制作简易弹窗界面
    • 2.1 两种界面设计模式
    • 2.2 制作弹窗
    • 2.3 文字内容弹窗
    • 2.4 获取用户输入的弹窗
    • 2.5 文件选择弹出窗口
    • 2.6 文件夹选择窗口
    • 2.7 进度条弹窗
  • 3 制作简易压缩软件
    • 3.1 功能需求
    • 3.2 功能拆解
    • 3.3 全部代码

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

1 PySimpleGUI安装

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

2 PySimpleGUI制作简易弹窗界面

2.1 两种界面设计模式

(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',
  pne_width=2,
  custom_text=' 好的 '
)

输出结果:(第一个参数就是要显示的信息,可以是单个,也可多个字符串,多个字符串时候,默认换行,如果是单个字符串可以通过pne_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()方法,括号里面的内容也是输入的提示语

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

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

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

2.6 文件夹选择窗口

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

2.7 进度条弹窗

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

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

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

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

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

for i in range(1, 1000):
  sg.one_pne_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')

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

到此这篇关于用 Python 库 PySimpleGUI 制作自动化办公小软件的文章就介绍到这了,更多相关Python 库 PySimpleGUI自动化办公小软件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 一个非常简单好用的Python图形界面库(PysimpleGUI)

    前一阵,我在为朋友编写一个源代码监控程序的时候,发现了一个 Python 领域非常简单好用的图形界面库. 说起图形界面库,你可能会想到 TkInter.PyQt.PyGUI 等流行的图形界面库,我也曾经尝试使用,一个很直观的感受就是,这太难用了.就去网上搜搜,看看有没有一些 demo,拿来改改,结果很少有,当时我就放弃了这些图形库的学习,转而使用了 vue+flask 的形式以浏览器网页作为程序界面,因为我会这个,即使实现起来稍微麻烦,但是也快. 那有朋友可能问了:一定要学习图形界面吗? 其实不

  • 6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

    在项目开发过程中加载.启动.下载项目难免会用到进度条,如何使用Python实现进度条呢? 这里为小伙伴们分享四种Python实现进度条的库:Progress库.tqdm库.alive-progress库和PySimpleGUI库,其中前三个是文本进度条库,最后一个是可以在GUI上运行的进度条. 1.Progress库 Progress是一种文本进度条库,库详细说明参加GitHub. 使用库之前需要进行安装,pip指令如下所示: pip install progressbar2 实现总耗时1S的进

  • python使用PySimpleGUI设置进度条及控件使用

    PySimpleGUI 使用起来感觉比tkinter要方便,当然我也没怎么用过这两者.只是学习模拟一下任务进度完成情况. 安装 pip install PySimpleGUI 一.简单进度条使用 PySimpleGUI有一个一条命令即可展示进度条的控件.one_line_progress_meter import time import PySimpleGUI as sg if __name__ == '__main__': sg.one_line_progress_meter('进度条标题',

  • Python 库 PySimpleGUI 制作自动化办公小软件的方法

    目录 1 PySimpleGUI安装 2 PySimpleGUI制作简易弹窗界面 2.1 两种界面设计模式 2.2 制作弹窗 2.3 文字内容弹窗 2.4 获取用户输入的弹窗 2.5 文件选择弹出窗口 2.6 文件夹选择窗口 2.7 进度条弹窗 3 制作简易压缩软件 3.1 功能需求 3.2 功能拆解 3.3 全部代码 Python 在运维和办公自动化中扮演着重要的角色,PySimpleGUI 是一款很棒的自动化辅助模块,让你更轻松的实现日常任务的自动化. 1 PySimpleGUI安装 在命令

  • 教你怎么用Python处理excel实现自动化办公

    一.介绍 实现的是把某个文件夹下的所有文件名提取出来,放入一个列表,在与excel中的某列进行对比,如果一致的话,对另一列进行操作,比如我们在统计人员活动情况的时候,对参加的人需要进行记录. 二.步骤 代统计名单 比如下面这个目录是参与活动的人员名单,每个文件夹为每个人参与活动的相关资料,有些目录是很多人一起参与一个活动,这个时候我要把文件遍历,把名字输入到一个列表中. 相关代码如下 # 保存指定目录下文件名到列表 def Save_name(dirPath): filePath = dirPa

  • python多行字符串拼接使用小括号的方法

    多行字符串拼接使用小括号 s = ('select *' 'from atable' 'where id=888') print s, type(s) #输出 select *from atablewhere id=888 <type 'str'> python遇到未闭合的小括号,自动将多行拼接为一行,相比三个引号和换行符,这种方式不会把换行符.前导空格当作字符. 以上这篇python多行字符串拼接使用小括号的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 原生javascript制作贪吃蛇小游戏的方法分析

    本文实例讲述了原生javascript制作贪吃蛇小游戏的方法.分享给大家供大家参考,具体如下: <!--1. 创建场景 --> <!-- 2.定义初始数据  以及随机食物 --> <!-- 3.控制贪吃蛇方向 --> <!-- 4.判断位置以及和随机食物的位置 增加贪吃蛇长度 --> HTML部分 <!DOCTYPE html> <html lang="en"> <head> <meta char

  • 一篇文章告诉你如何用Python控制Excel实现自动化办公

    目录 1.安装 2.操作一个简单的Excel文档 3. 操作简单Excel文档并添加数据格式 4.Excel中添加不同类型的数据 5.Excel中添加数据图表 最后:可能给予你助力的教程 总结 1.安装 2.操作一个简单的Excel文档 操作注释及代码: 操作完成后,数据存储结果如下: 3. 操作简单Excel文档并添加数据格式 操作代码如下: 附带数据格式的定义 操作效果如图所示: 4.Excel中添加不同类型的数据 操作代码如下: 将不同的数据按照指定的格式添加到文件中 代码执行结果如下:

  • 易语言制作简单计时器小程序的方法

    简单计时器 易语言制作简单计时器用到以下几个功能: 编辑框 按钮 时钟 变量 如果命令 例程: 说明: 本方法是新手学习易语言制作的软件,深入学习易语言后你将会有更方便的写法 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • Python库学习Tkinter制作GUI个性签名设计软件

    目录 Tkinter简介 获取个性签名图 设计软件GUI界面 下拉列表框 设计界面 人生苦短,快学Python! 上一周发了一篇文章<Python Tkinter图形工具使用方法及实例解析>,很多小伙伴都希望能多出点教程,今天就来了. Tkinter简介 由于Tkinter是Python自带的标准库,我们想要使用它的时候,只需直接导入即可. from tkinter import * Tkinter支持的组件有: 对于简单的图形界面 Tkinter 还是能应付自如,不过相对于PyQt5做出的界

  • python制作英语翻译小工具代码实例

    这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() i=input('请问你要翻译什么?') url='http://fanyi.youdao.com/translate' headers={

  • 使用Python制作简单的小程序IP查看器功能

    前言 说实话,查看电脑的IP,也挺无聊的,但是够简单,所以就从这里开始吧.IP地址在操作系统里就可以直接查看.但是除了IP地址,我们也想通过IP获取地理地址和网络运营商情况.IP地址和地理地址并没有固定的关系,所以我们需要借助网络上的数据库,或者说借助第三方的服务来查询.这里,我们选用IP.CN提供的IP地址查询服务. 基本环境配置 版本:Python3 系统:Windows 相关模块:PyQt5 实现效果图 完整代码 运行以上程序,点击按钮,大约卡顿半秒后,文本标签处就会显示我们电脑的IP地址

  • Python自动化办公之编写PDF拆分工具

    目录 需求 需求解析 代码实现 今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 需要从 PDF 中取出几页并将其保存为新的 PDF,为了后期使用方便,这个工具需要做成傻瓜式的带有 GUI 页面的形式 选择源 pdf 文件,再指定下生成的新的 pdf 文件名称及保存位置,和需要拆分的 page 信息,就可以得到新的 pdf 文件了 需求解析 对于 Python GUI,我们有太多种选择了

随机推荐