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

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

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


目录
相关文章
|
28天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
85 7
|
2月前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
62 0
|
2月前
|
机器学习/深度学习 算法框架/工具 Python
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
76 0
|
4月前
|
前端开发 JavaScript 测试技术
Python中的GUI测试
【8月更文挑战第15天】本文探讨了Python中图形用户界面(GUI)测试的关键工具——Selenium与PyQt。Selenium专为Web应用测试设计,能模拟用户行为如点击和输入文本。PyQt则基于Qt框架,用于构建丰富的桌面应用程序及编写自动化测试脚本。
40 3
|
4月前
|
存储 数据可视化 Python
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
224 1
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
本文介绍了一个基于Python Tkinter库开发的GUI股票评论数据及投资者情绪分析系统,该系统提供股票数据展示、情绪与股价分析、模型指标分析、评论数据展示、词云分析和情感分析结果展示等功能,帮助投资者通过情感分析了解市场舆论对股票价格的影响,以辅助投资决策。
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
|
5月前
|
Python
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
|
4月前
|
存储 数据库连接 数据库
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
227 1
|
6月前
|
Python
Python GUI进度条
Python GUI进度条
|
6月前
|
计算机视觉 Python
python实现GUI遇到的问题
python实现GUI遇到的问题