EasyGUI 详细解读

本文详细介绍了Python的EasyGUI模块,它是一个轻量级的GUI库,通过简单函数调用实现GUI交互。主要内容包括按钮组件如msgbox、ccbox、ynbox、boolbox和buttonbox的使用,以及多项选择、输入消息、输入密码、显示文本、目录与文件操作的方法。EasyGUI适用于快速创建简单的图形用户界面,适合初学者和快速原型开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EasyGUI 详细解读

1. 什么是 EasyGUI

  • EasyGUI 是 Python 中一个非常简单的 GUI 编程模块,所有的 GUI 交互都是通过简地函数调用就可以实现,功能虽然弱小,但是使用超级简单
  • EasyGUI 是运行在 Tkinter 上并拥有自身的事件循环,而 IDLE 也是 Tkinter 写的一个应用程序并也拥有自身的事件循环,因此当两者同时运行的时候,有可能会发生冲突,且带来不可预测的结果
  • 若支持 pip 安装模块,则通过 pip install easygui可安装该模块
  • 官网:https://github.com/robertlugg/easygui
  • 将程序生成可执行文件:pyinstaller -F -w -i 图标路径 文件绝对路径

2. EasyGUI 的各种功能演示

  • 功能演示 demon
import easygui 
easygui.egdemo()  # 执行egdome即可查看EasyGUI模块包的所用功能演示
  • 成功调用后可以尝试 EasyGUI 拥有的各种功能,并将结果打印至控制台:
    在这里插入图片描述

3. EasyGUI模块方法使用介绍

下表默认通过 from easygui import *导入模块所有方法,可直接用方法名调用,建议通过import easygui as 自定义名导入模块,通过 自定义名.方法名 调用方法

3.1 使用按钮组件

方法名方法描述
msgbox()提供一个消息展示界面,并提供按钮完成消息展示执行下一步
ccbox()提供两个按钮,对应返回True或者False
ynbox()提供两个按钮,对应返回True或者False,和ccbox()默认按钮名不一样
boolbox()提供两个按钮,第一个选中返回True,否则返回False
buttonbox()提供一组按钮,点击返回对应的按扭文本
indexbox()提供一组按钮,点击返回对应的按扭序号,从0开始,序号为int型
  • 同用特征 :方法调用都包含:msg,title,button_name,image 等参数,其中:msg为显示文本内容;title为窗口标题;button_name为按钮名字;image为一张展示图片,支持png,gif格式
3.1.1 msgbox()
  • msgbox() :显示一个消息 message 或者自定义是否显示一个标题title,并提供一个按钮,该按钮可理解为程序是否向下一步的执行的开关按钮
  • 函数原型:msgbox(msg='', title=' ', ok_button='OK', image=None, root=None)
  • 调用方法:msgbox('message', 'tille name', ' botton')
    • message默认 :(Your message goes here)
    • tille name默认 : 空
    • botton默认 : ok
  • 如下演示程序和运行显示GUI界面,当点击good bye按钮,程序向下执行,打印出GUI msgbox显示结束后程序执行结束
from easygui import *
msgbox("hello world !", "QWQ", "good bye")
print("GUI msgbox显示结束")

在这里插入图片描述

3.1.2 ccbox()和ynbox()
  • ccbox() 提供一个选择:“C[o]ntinue” 或者 “C[a]ncel”,并相应的返回 True 或者 False
  • ynbox()用法和ccbox() 一样,提供的选项默认值为YesNo,其它都一样
  • 函数原型:ccbox(msg='', title=' ', choices=('C[o]ntinue', 'C[a]ncel'), image=None, default_choice='C[o]ntinue', cancel_choice='C[a]ncel')
  • 调用方法:ccbox('message','title',('continue','cancel'))
    • message默认 :Shall I continue?'
    • tille name默认 : 空
    • choices 默认 : continue返回True, cancel 返回False
  • 如下演示程序和运行显示GUI界面,当点击on按钮,放回True,打印 打开灯,当点击off按钮,返回False,打印 关闭灯
if  ccbox('是否打开灯光?', '房间灯光',('on','off')):
    print("打开灯")
else :
    print("关闭灯")

在这里插入图片描述

3.1.3 boolbox()
  • boolbox()用法和ccbox(),ynbox()基本相同,如果第一个按钮被选中则返回 True,否则返回 False
3.1.4 buttonbox()
  • buttonbox() 会显示一组由你自定义的按钮,当点击任意一个按钮的时候,返回按钮的文本内容,如果用户点击取消或者关闭窗口,那么会返回默认选项(第一个选项)
  • 调用方法:buttonbox()('message','title',('button1','botton2','botton3'))
  • 如下演示程序和运行显示GUI界面,当点击苹果按钮,打印 你喜欢苹果,当点击香蕉按钮,打印 你喜欢香蕉,点击桃子按钮,打印 你喜欢桃子
while 1 :
    message = buttonbox('你最喜欢的水果是什么?',choices=('苹果', '香蕉', '桃子'))
    print("你喜欢" + message)

在这里插入图片描述

3.1.5 indexbox()
  • 跟 buttonbox() 一样,区别就是当用户选择第一个按钮的时候返回序号 0, 选择第二个按钮的时候返回序号 1,序号为 int
  • 如下展示了bool用法和展示图片:
if  boolbox('米老鼠可爱吗?', '',('可爱','No'),"D:\desk file\python_TK\mouse.png"):
    print("我喜欢米老鼠")
else :
    print("我害怕老鼠")

在这里插入图片描述

3.2 多项选项

方法名方法描述
choicebox()提供了一个可选择的列表,选择其中的目标
multchoicebox()提供了一个可选择的列表,可以同时选择多个目标
  • choicebox() 和 multchoicebox() 使用方法均相同,提供了一个可选择的列表,使用序列(元祖或列表)作为选项,这些选项会按照字母进行排序。对目标进行选择。
  • 不同:choicebox() 仅可选择一个目标,multchoicebox()可以多选
  • 如下示例代码:
while 1:
    chose = ["华中科技大学","武汉大学","武汉理工大学","华中师范大学"]
    ret = choicebox("你所在大学是:",'所读院校',chose)
    if ret == None :
        print(ret)   # 点Cancle按钮,返回None
        break
    else :
        print(ret)  # 选择目标,点 OK 按钮返回选择目标

while 1:
    chose = ["华中科技大学","武汉大学","武汉理工大学","华中师范大学"]
    ret = multchoicebox("你所在大学是:",'所读院校',chose)
    if ret == None:
        print(ret)
        break
    else :
        print(ret)  # 选择目标,点 OK 按钮,以list类型返回选择的一个或者多个目标

在这里插入图片描述
在这里插入图片描述

3.3 输入消息

方法名方法描述
enterbox()提供一个最简单的输入框,返回值为用户输入的字符串
integerbox()提供一个简单的输入框,用户只能输入一定范围内的整型数值
multenterbox()用户提供多个简单的输入框
3.3.1 enterbox()
  • enterbox() 为用户提供一个最简单的输入框,返回值为用户输入的字符串。
  • 使用方法:enterbox(msg='Enter something.', title=' ', default='', strip=True, image=None, root=None)
  • 参数default为默认初始输入内容,可以删除初始内容
  • 示例代码及界面如下:点击 ok 返回输入的内容字符串,点击 Cancel 返回None
text = enterbox(msg='输入你想说的话:', title='心里话', default='开心')
print(text)

在这里插入图片描述

3.3.2 integerbox()
  • integerbox() 为用户提供一个简单的输入框,用户只能输入范围内(lowerbound 参数设置最小值,upperbound 参数设置最大值)的整型数值,否则会要求用户重新输入
  • 使用方法 : integerbox(msg='', title=' ', default=None, lowerbound=0, upperbound=99, image=None, root=None)
  • lowerboundupperbound 参数的边界,默认为 0 到 99,输入的值不在范围内,弹出报错窗口并要求重新输入
3.3.3 multenterbox()
  • 用户提供多个简单的输入框,将输入内容以列表形式返回
  • 用法参数用法enterbox()一样,只不过输入内容和初始值要以列表形式输入
  • 示例代码和界面如下:
file = ['姓名','学号','密码']
ret = []
ret = multenterbox("请输入以下信息登录","登录界面",file)
print(ret)

在这里插入图片描述

3.4 输入密码

方法名方法描述
passwordbox()用户输入的内容用星号(*)显示出来
multpasswordbox()多行输入显示,最后一个输入框显示为密码的形式*
  • passwordbox()enterbox() 样式一样,不同的是用户输入的内容用星号 * 显示出来,该函数返回用户输入的字符串
  • multpasswordbox()multenterbox() 使用相同的接口,但当它显示的时候,最后一个输入框显示为密码的形式 *,如下将上例使用multpasswordbox()方法的显示界面
    在这里插入图片描述

3.5 显示文本

  • textbox() 和 codebox()用来展示一段文本,用法基本一样,不同在于:textbox() 函数默认会以比例字体,codebox() 默认以等宽字体显示文本内容。
  • 方法:textbox(msg='', title=' ', text='', codebox=False, callback=None, run=True)
  • 示例代码和界面如下,点击 Cancel 返回 None, 点击 OK返回展示文本内容
text ="""
 静夜思
  李白
窗前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
"""
ret = textbox("一首好诗",'',text)
print(ret)

在这里插入图片描述

3.6 目录与文件

方法名方法描述
diropenbox()提供一个对话框,返回用户选择的目录名
fileopenbox()提供一个对话框,返回用户选择的文件名
filesavebox()提供一个对话框,让用于选择文件需要保存的路径
3.6.1 diropenbox()
  • diropenbox() 函数用于提供一个对话框,返回用户选择的目录名(带完整路径哦),如果用户选择 “取消” 则返回 None
  • 方法:diropenbox(msg=None, title=None, default=None)
  • 如下示例:
ret = diropenbox("请选择一个文件夹", "浏览文件夹")
print(ret)

在这里插入图片描述

3.6.2 fileopenbox()
  • fileopenbox() 函数用于提供一个对话框,返回用户选择的文件名(带完整路径哦),如果用户选择 取消 则返回 None。

  • 方法 : fileopenbox(msg=None, title=None, default='*', filetypes=None, multiple=False)
    关于 default 参数的设置方法:

  • default 参数指定一个默认路径,通常包含一个或多个通配符。
    如果设置了 default 参数,fileopenbox() 显示默认的文件路径和格式。
    default 默认的参数是 ‘*’,即匹配所有格式的文件

比如:
default=“c:/python/.py" 即显示 C:\python 文件夹下所有的 Python 文件。
default="c:/python/test
.py” 即显示 C:\python文件夹下所有的名字以 test 开头的 Python文件。

  • filetypes 参数的设置方法:
    • 可以是包含文件掩码的字符串列表,例如:filetypes = [“*.txt”]
    • 可以是字符串列表,列表的最后一项字符串是文件类型的描述,例如:filetypes = [“.css", [".htm”, “*.html”, “HTML files”]]
  • multiple 参数,如果为 True 则表示可以同时选择多个文件,多个文件的路径以列表形式返回
ret = fileopenbox("请选择一个文件",'','*',['*.py'],True)
print(ret)

在这里插入图片描述

3.6.3 filesavebox()
  • filesavebox() 函数提供一个对话框,让用于选择文件需要保存的路径(带完整路径哦),如果用户选择 取消 则返回 None
  • 方法:filesavebox(msg=None, title=None, default='', filetypes=None)
  • default 参数应该包含一个文件名(例如当前需要保存的文件名),当然也可以设置为空的,或者包含一个文件格式掩码的通配符
  • filetypes 参数的设置方法和 fileopenbox() 函数一样

感谢阅读 若有错误 敬请见谅 !!!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

园长QwQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值