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 综合实战
- 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图形界面,果然被种草了。相关推荐
- 关于GUI图形界面化交互模式
Programmierung der grafischen Benutzeroberfläche GUI图形界面化编程 常用的GUI库 1.Tkinter 2.wxPython 3.PyQT tkin ...
- Gox语言中使用Sciter库进行GUI图形界面编程-GX23.1
Sciter是非常优秀的跨平台GUI图形界面编程库,只需附带一个动态链接库文件,就可以实现基于HTML/CSS/TiScript的图形界面,并且已经经过很多公司和商用产品的实际检验,稳定可靠.我们常见 ...
- Python升级之路( Lv11 ) GUI图形界面编程
Python系列文章目录 第一章 Python 入门 第二章 Python基本概念 第三章 序列 第四章 控制语句 第五章 函数 第六章 面向对象基础 第七章 面向对象深入 第八章 异常机制 第九章 ...
- python GUI图形界面化编程——Tkinter
一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读 GUI图形界面化编程 一.前言 一.GUI图形界面化编程 二.常用的GUI库 三.GUI 编程的核心步骤和第一个 GUI 程序 设置窗口的 ...
- python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架
作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...
- python使用界面-推荐8款常用的Python GUI图形界面开发框架
作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...
- CentOS7下安装GUI图形界面
1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...
- CentOS7安装Gnome GUI图形界面
CentOS7安装Gnome GUI图形界面 最小化安装了.当时没 注意,后面一步步安装完了,结果直接启动到命令行模式了. 晕,又不想重新安装,直接想从命令行模式安装.在网上找了半天,终于找到一点小 ...
- 【逗老师的无线电】为MMDVM热点盒子安装树莓派GUI图形界面仪表盘
逗老师玩了大半年的DMR,感觉大部分MMDVM外挂的串口屏仪表盘,受限于串口屏的通信原理,layout都不是特别美观.刷新率也低.那有没有办法让MMDVM盒子直接通过SPI液晶屏或者HDMI接口来显示 ...
最新文章
- 超详细解析 | 一致性协议算法-2PC、3PC、Paxos、Raft、ZAB、NWR
- UA MATH566 统计理论4 贝叶斯统计基础1
- 第45讲:哪都能存,Item Pipeline 的用法
- MTK-TP(电阻屏校准程序ts_lib移植)
- 操作系统之(一篇文章让你简单搞定:什么是进程和线程)
- 经典面试题(7):下面的代码运行结果是什么么?
- mysql面试题sql语句_数据库MySQL经典面试题之SQL语句
- Halcon 学习总结——制作标定板(函数gen_caltab)
- L1- 009——016
- 20191201每日一句
- 数据结构(C语言)-串
- AWG标准线径规格对照表 (2
- markdown实时分块渲染引擎
- Android笔记:使用Glide加载图片刷新时会闪烁
- java jks 转pfx_JKS、BKS、PFX证书格式之间转换
- 易语言大漠圆形椭圆形渐开线结合鼠标特征码刷怪
- Android开发:如何实现收发短信
- Java指导书练习题——抽象类
- Eclipse IDE
- Mocha Pro 2022(合集)