什么是 easygui?
easygui 是一个简单、易用的 Python 图形用户界面 库,它的最大特点是极其简单,让你不需要编写复杂的代码,就能快速创建出弹窗式的对话框。

相比于 Tkinter、PyQt 等需要创建窗口、放置控件、设置事件循环的传统 GUI 库,easygui 采用“函数即窗口”的模式,一行代码就能弹出一个对话框,非常适合:
- 初学者:快速了解 GUI 编程的基本概念。
- 快速原型开发:在项目初期,用简单的对话框来获取用户输入或显示信息。
- 脚本工具:为命令行脚本增加一个简单的图形交互界面。
如何安装 easygui
安装 easygui 非常简单,通常只需要一行命令,您需要使用 Python 的包管理器 pip。
前提条件
确保您的电脑上已经安装了 Python,您可以在命令行中输入以下命令来检查:
python --version # 或者 (如果您同时安装了 Python 2 和 3) python3 --version
安装步骤
-
打开命令行工具
(图片来源网络,侵删)- Windows: 打开 "命令提示符" (CMD) 或 "PowerShell"。
- macOS: 打开 "终端" (Terminal)。
- Linux: 打开 "终端" (Terminal)。
-
执行安装命令 在命令行中输入以下命令,然后按回车键:
pip install easygui
如果您的系统默认使用
python3,建议使用pip3以确保安装到正确的 Python 环境中:pip3 install easygui
-
验证安装 安装完成后,可以通过以下命令来验证
easygui是否已经成功安装:pip show easygui
如果安装成功,您会看到类似下面的输出,显示了
easygui的版本和位置信息:
(图片来源网络,侵删)Name: easygui Version: 0.98.3 Summary: Very simple, but flexible and easy-to-use GUI for Python Home-page: https://github.com/robertlugg/easygui Author: easygui contributors Author-email: ... License: BSD Location: /path/to/your/python/site-packages Requires: Required-by:
如何使用 easygui
安装完成后,您就可以在 Python 代码中导入并使用它了。
基本语法
所有 easygui 的功能都通过调用其模块中的函数来实现。
import easygui
# 调用一个 easygui 函数,例如显示一个消息框
easygui.msgbox("你好,欢迎使用 EasyGUI!", title="欢迎")
运行上述代码后,会弹出一个简单的对话框:
常用函数示例
下面是一些最常用、最核心的 easygui 函数示例。
msgbox() - 消息框
用于显示简单的信息。
import easygui msg = "这是一个消息框。"= "消息" easygui.msgbox(msg, title)
buttonbox() - 按钮框
显示一个带有自定义按钮的对话框,并返回用户点击的按钮文本。
import easygui
# 定义按钮列表
choices = ["是", "否", "取消"]
# 显示按钮框,用户点击后,返回值会是 '是', '否', 或 '取消'
user_choice = easygui.buttonbox(
"你想要继续吗?","选择",
choices=choices
)
print(f"您选择了: {user_choice}")
enterbox() - 输入框
弹出一个输入框,让用户输入一行文本,并返回用户输入的内容。
import easygui
# 弹出输入框
name = easygui.enterbox("请输入您的名字:", title="用户信息")
if name: # 如果用户没有点击取消,而是输入了内容
print(f"你好, {name}!")
else:
print("您取消了输入。")
integerbox() / floatbox() - 数字输入框
专门用于获取整数或浮点数输入,如果用户输入的不是有效数字,会提示重新输入。
import easygui
# 获取整数
age = easygui.integerbox("请输入您的年龄:", title="年龄", lowerbound=1, upperbound=120)
if age:
print(f"您的年龄是: {age}")
# 获取浮点数
price = easygui.floatbox("请输入商品价格:", title="价格", lowerbound=0)
if price:
print(f"商品价格是: {price:.2f}")
choicebox() - 选择列表
当选项很多时,使用下拉列表或单选按钮框都不方便,choicebox 会弹出一个列表供用户选择。
import easygui
# 定义一个选项列表
choices = ["苹果", "香蕉", "橙子", "葡萄", "西瓜"]
# 显示选择列表
fruit = easygui.choicebox("请选择您喜欢的水果:", title="水果选择", choices=choices)
if fruit:
print(f"您选择了: {fruit}")
multchoicebox() - 多选列表
允许用户从列表中选择多个选项,返回一个包含所有选中项的列表。
import easygui
# 定义选项列表
choices = ["阅读", "旅行", "游戏", "运动", "音乐", "电影"]
# 显示多选列表
hobbies = easygui.multchoicebox("请选择您的爱好:", title="爱好调查", choices=choices)
if hobbies:
print(f"您的爱好是: {', '.join(hobbies)}")
ynbox() - 是/否框
一个简化的 buttonbox,只有 "是" 和 "否" 两个选项,常用于确认操作。
import easygui
# 显示是/否框
confirm = easygui.ynbox("确定要删除这个文件吗?", title="确认删除")
if confirm:
print("文件已删除。")
else:
print("操作已取消。")
完整示例:一个简单的交互式程序
下面是一个结合了多个 easygui 函数的完整示例,模拟一个简单的登录和用户信息查询流程。
import easygui
# --- 主程序 ---
# 1. 登录验证
username = easygui.enterbox("请输入用户名:", title="登录")
password = easygui.passwordbox("请输入密码:", title="登录")
if username == "admin" and password == "123456":
easygui.msgbox("登录成功!", title="欢迎")
else:
easygui.msgbox("用户名或密码错误!", title="错误")
exit() # 登录失败,程序退出
# 2. 显示主菜单
while True:
msg = "请选择您要执行的操作:"= "主菜单"
choices = ["查看个人信息", "修改密码", "退出"]
choice = easygui.buttonbox(msg, title, choices=choices)
if choice == "查看个人信息":
# 3. 显示信息
info = f"""
--- 用户信息 ---
用户名: {username}
角色: 管理员
"""
easygui.msgbox(info, title="个人信息")
elif choice == "修改密码":
# 4. 获取新密码
new_pass = easygui.passwordbox("请输入新密码:", title="修改密码")
if new_pass: # 确保用户没有取消
confirm_pass = easygui.passwordbox("请再次输入新密码:", title="确认密码")
if new_pass == confirm_pass:
easygui.msgbox("密码修改成功!", title="成功")
# 在实际应用中,这里应该更新密码存储
else:
easygui.msgbox("两次输入的密码不一致!", title="错误")
elif choice == "退出":
easygui.msgbox("感谢使用,再见!", title="退出")
break # 退出 while 循环,程序结束
常见问题与解决
Q1: 运行代码时报错 ModuleNotFoundError: No module named 'easygui'
原因: Python 找不到 easygui 模块,这通常是因为 easygui 没有安装,或者安装在了不同的 Python 环境中。
解决方法:
- 确认您已经成功运行了
pip install easygui。 - 确认您是在安装了
easygui的那个 Python 环境中运行脚本,如果您使用的是虚拟环境(如venv),请确保已经激活了该环境。 - 尝试使用
python -m pip install easygui来安装,这可以确保pip是通过正确的 Python 解释器调用的。
Q2: 如何让 easygui 的窗口总在最前面?
easygui 本身不提供此功能,但您可以通过 tkinter(easygui 的底层库)来实现。
import easygui
from tkinter import Tk
# 在调用 easygui 函数之前,获取根窗口并设置其属性
root = Tk()
root.attributes('-topmost', True)
root.withdraw() # 隐藏这个空的根窗口
# 现在调用 easygui 函数,它的窗口就会置顶
easygui.msgbox("这个窗口会总在最前面!", title="置顶窗口")
# 最后销毁根窗口
root.destroy()
Q3: easygui 的界面太丑了,可以自定义样式吗?
easygui 的设计哲学就是简单,所以它提供的自定义样式选项非常有限(主要是标题和消息文本),如果您需要更美观、更复杂的界面,建议学习更强大的 GUI 库,如:
- Tkinter: Python 自带,无需额外安装,功能稳定。
- PyQt/PySide: 功能非常强大,可以创建专业的桌面应用程序,但学习曲线较陡峭。
- Kivy: 适合开发多点触控应用。
希望这份详细的指南能帮助您顺利安装并上手 easygui!
