Python3,1行代码,制作GUI图形界面,果然被种草了。

2023-11-10

1、引言

小屌丝:鱼哥,都说你的快捷键用的挺溜的,能不能分享一下,都怎么记住这些快捷键的?
小鱼:用脑子记啊。
小屌丝:我屮艸芔茻,为啥我脑子就记不住呢?
小鱼:没有动力呗。
小屌丝:可能确实如你所说…那咋才能有动力呢?
小鱼:能不能别闹,你的动力源是啥,我哪知道!!!
小屌丝:说的你好像很正经似的…
小鱼:别闹,这么多人呢,别影响形象。
小屌丝:想让我别闹可以,鱼哥,你不得拿出点诚意来嘛…
在这里插入图片描述

小鱼:我擦,这是赤裸裸的XX,说出你的条件。
小屌丝 :教我快捷键姿势。
小鱼:…

平时我们都喜欢在GUI界面进行各种的文件操作等等,
很少有人习惯CentOS系统或者无GUI界面操作,除非…像我~ ~

关于Python实现的GUI,我们几乎都会想到Tkinter,
但是像小鱼这么重注颜值的人来说,
Tkinter肯定无法满足对颜值的要求,
所以,今天我们就来搞一个高颜值的GUI界面-----PySimpleGUI实现。。

2、代码实战

2.1 安装

由于第三方库,都需要安装,
我们还是老规矩,pip安装

pip install PySimpleGUI

其它安装方式,直接看这两篇:

Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
Python3:我低调的只用一行代码,就导入Python所有库!

2.2 功能介绍

安装完之后,我们就可以进行功能实验了。

2.2.1 选择文件夹

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2022-05-30
# @Author : carl_DJ

import PySimpleGUI as psg

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

运行结果

  • 一、静态图
    在这里插入图片描述
    ①选择文件夹
    在这里插入图片描述
    ②弹窗在显示文件夹的路径
    在这里插入图片描述
    ③点击OK,路径会显示出来

  • 二、动态图
    在这里插入图片描述

2.2.2 选择文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2022-05-30
# @Author : carl_DJ

import PySimpleGUI as psg

"选择文件"

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

解析

  • multiple_files=True :可以选择多个文件
  • file_types:选择文件的类型

运行结果

在这里插入图片描述

2.2.3 选择日期

代码示例

# -*- 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.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第三方库的知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,1行代码,制作GUI图形界面,果然被种草了。 的相关文章

随机推荐

  • Linux从图形界面切换到文本界面快捷键不好用的解决方法

    我们在正常情况下切换虚拟终端只要用组合键 Ctrl Alt Fn 这个n就是你要切换的虚拟终端的号 然后可以再按Ctrl Alt F7回到图形界面 但是在vmware中这个办法经常不奏效 原因大家应该知道的 就是在vmware下默认按住 C
  • 品读 Linux 0.11 核心代码

    https github com sunym1993 flash linux0 11 talk
  • node.js和npm的关系

    一 npm是什么 当一个网站依赖的js代码越来越多 程序员发现这是一件很麻烦的事情 去 jQuery 官网下载 jQuery 去 BootStrap 官网下载 BootStrap 去 Underscore 官网下载 Underscore 有
  • ETL入门教程

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 1214 1 ETL详解 1 1 ETL https www cnblogs com yjd hycf space p 7772722 htm
  • Jmeter 自动化性能测试常见问题汇总(建议收藏)

    一 request 请求超时设置 timeout 超时时间是可以手动设置的 新建一个 http 请求 在 高级 设置中找到 超时 设置 设置连接 响应时间为2000ms 1 请求连接超时 连不上服务器 现象 Jmeter表现形式为 前面几个
  • 预览窗格无法预览文件_如何在Windows 10上显示文件资源管理器的预览窗格

    预览窗格无法预览文件 It s easy to preview files without opening them in Windows 10 thanks to the Preview Pane feature in File Expl
  • Python 复制和移动文件:shutil

    用 Python 来进行文件的复制和移动操作 需要利用 Python 的标准库 shutil 程序实现 一 复制文件 复制文件 shutil copyfile file old jpg file new jpg 只能对文件进行操作 shut
  • 使用函数输出指定范围内的Fibonacci数 (20 分)

    使用函数输出指定范围内的Fibonacci数 20 分 本题要求实现一个计算Fibonacci数的简单函数 并利用其实现另一个函数 输出两正整数m和n 0
  • python 合并内容相同单元格

    客户这边 其中有一个如同上图所示的 sheet 然而需求是 需要将这张表第一列 一级部 数据相同内容做合并单元格处理 结果如下 代码分享如下 from openpyxl import load workbook 合并单元格 result f
  • openai账号创建教程-openai注册问题大全

    openai注册页面打不开 遇到openai注册页面打不开 可以用以下解决方法 检查网络连接 如果您的网络连接不稳定或者有问题 可能会导致访问网站异常 请尝试使用其他设备或连接其他网络 看是否能够打开OpenAI注册页面 清除浏览器缓存和C
  • nginx的proxy_pass路径转发规则最后带/问题

    一 location匹配路径末尾没有 location sta proxy pass http 192 168 1 1 sta 外面访问 http 外网IP sta sta1 html相当于访问 http 192 168 1 1 sta s
  • C#: Json序列化和反序列化,集合为什么多出来一些元素?

    如下面的例子 很容易看出问题 如果类本身的无参构造函数 就添加了一些元素 序列化 再反序列化 会导致元素增加 如果要避免 必须添加 new JsonSerializerSettings ObjectCreationHandling Obje
  • windows vscode远程访问linux虚拟机里面的docker

    1 启动有host网络的容器 进入容器命令行 2 安装并开启ssh服务 启动容器后 安装openssh apt get update apt get install openssh server 3 设置远程登录的密码 如果希望直接使用ro
  • css 色弱模式(反色)

    在 body 或者任意元素加上这2个样式即可 webkit filter invert 80 filter invert 80 其他效果 blur 模糊 webkit filter blur 2px brightness 亮度 webkit
  • vue自定义指令

    除了核心功能默认内置的指令 v model和v show 也可以注册自定义指令 注册一个全局自定义指令 v focus Vue directive focus 当被绑定的元素插入到DOM中时 inserted function el 聚焦元
  • VTK安装与项目实例

    VTK安装与项目实例 所需软件的安装 本文中VTK项目的开发所用语言为C 使用Vs Qt进行开发 另需要CMake进行编译安装 Vs Qt安装与配置 具体步骤见 Vs Qt下载与配置 CMake安装 下载地址 常规软件安装步骤 VTK的下载
  • ping 的原理解析

    一 ping概述 ping 属于一个通讯协议 是 TCP IP 协议的一部分 利用 ping 命令可以检查网络是否通畅或者查看网络连接速度 便于分析和判定网络故障 使用 ping 命令会发送一个 ICMP Internet Control
  • Linux文件编辑命令具体整理

    刚接触Linux 前几天申请了个免费体验的阿里云server 选择的是Ubuntu系统 配置jdk环境变量的时候须要编辑文件 vi命令编辑文件 百度了一下 非常多回答不是非常全面 因此编辑文件话了一些时间 这里博主整理了一下 分享给大家 一
  • tomcat服务器缓存配置文件,tomcat服务器从memcached缓存里面设置Session

    tomcat服务器从memcached缓存里面设置Session 发布时间 2020 05 28 18 03 29 来源 51CTO 阅读 374 作者 素颜猪 1 分别向tomcat的lib中添加jar包 jar包目录如下 192 168
  • Python3,1行代码,制作GUI图形界面,果然被种草了。

    1行代码制作GUI 1 引言 2 代码实战 2 1 安装 2 2 功能介绍 2 2 1 选择文件夹 2 2 2 选择文件 2 2 3 选择日期 2 2 4 输入文本 2 2 5 弹窗显示 2 2 6 弹窗选择 2 2 7 自定义弹窗 2 3