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 综合实战
  • 3、总结

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

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

  1. 关于GUI图形界面化交互模式

    Programmierung der grafischen Benutzeroberfläche GUI图形界面化编程 常用的GUI库 1.Tkinter 2.wxPython 3.PyQT tkin ...

  2. Gox语言中使用Sciter库进行GUI图形界面编程-GX23.1

    Sciter是非常优秀的跨平台GUI图形界面编程库,只需附带一个动态链接库文件,就可以实现基于HTML/CSS/TiScript的图形界面,并且已经经过很多公司和商用产品的实际检验,稳定可靠.我们常见 ...

  3. Python升级之路( Lv11 ) GUI图形界面编程

    Python系列文章目录 第一章 Python 入门 第二章 Python基本概念 第三章 序列 第四章 控制语句 第五章 函数 第六章 面向对象基础 第七章 面向对象深入 第八章 异常机制 第九章 ...

  4. python GUI图形界面化编程——Tkinter

    一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读 GUI图形界面化编程 一.前言 一.GUI图形界面化编程 二.常用的GUI库 三.GUI 编程的核心步骤和第一个 GUI 程序 设置窗口的 ...

  5. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  6. python使用界面-推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  7. CentOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  8. CentOS7安装Gnome GUI图形界面

    CentOS7安装Gnome GUI图形界面  最小化安装了.当时没 注意,后面一步步安装完了,结果直接启动到命令行模式了. 晕,又不想重新安装,直接想从命令行模式安装.在网上找了半天,终于找到一点小 ...

  9. 【逗老师的无线电】为MMDVM热点盒子安装树莓派GUI图形界面仪表盘

    逗老师玩了大半年的DMR,感觉大部分MMDVM外挂的串口屏仪表盘,受限于串口屏的通信原理,layout都不是特别美观.刷新率也低.那有没有办法让MMDVM盒子直接通过SPI液晶屏或者HDMI接口来显示 ...

最新文章

  1. 超详细解析 | 一致性协议算法-2PC、3PC、Paxos、Raft、ZAB、NWR
  2. UA MATH566 统计理论4 贝叶斯统计基础1
  3. 第45讲:哪都能存,Item Pipeline 的用法
  4. MTK-TP(电阻屏校准程序ts_lib移植)
  5. 操作系统之(一篇文章让你简单搞定:什么是进程和线程)
  6. 经典面试题(7):下面的代码运行结果是什么么?
  7. mysql面试题sql语句_数据库MySQL经典面试题之SQL语句
  8. Halcon 学习总结——制作标定板(函数gen_caltab)
  9. L1- 009——016
  10. 20191201每日一句
  11. 数据结构(C语言)-串
  12. AWG标准线径规格对照表 (2
  13. markdown实时分块渲染引擎
  14. Android笔记:使用Glide加载图片刷新时会闪烁
  15. java jks 转pfx_JKS、BKS、PFX证书格式之间转换
  16. 易语言大漠圆形椭圆形渐开线结合鼠标特征码刷怪
  17. Android开发:如何实现收发短信
  18. Java指导书练习题——抽象类
  19. Eclipse IDE
  20. Mocha Pro 2022(合集)

热门文章

  1. 哪些seo搜索技巧你不会用?
  2. python一个对象只能被一个变量引用吗_python中的对象、变量、引用的问题
  3. RK3288 LED驱动编写
  4. c语言 运算符的作用,C语言运算符
  5. 程序猿也爱学英语,有图有真相
  6. 【年终策划】逆袭:盘点2012互联网
  7. 微信小程序 MinUI 组件库系列之 abnor 异常流组件 1
  8. 《游戏学习》Java实现仿雷电游戏设计
  9. HDU 3853 LOOPS(概率DP)
  10. 第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂)