资讯详情

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 

:

》 《

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) 

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!")

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)

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

标签: psg3m磁感应传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台