前言
easygui是python中一个非常简单的GUI界面库,不是事件驱动的,所有的GUI交互都是通过简单地函数调用就可以实现,无需安装额外的GUI界面库,支持多种操作系统,轻松地在Python程序中创建消息框,输入框,选择框等。
图形用户界面(Graphical User Interface:GUI)
一、easygui是什么?
import easygui
easygui.egdemo() # 执行egdome即可查看EasyGUI模块包的所用功能演示
若报错:
Traceback (most recent call last):
File “D:\Python_Project\MapFileAnalyzer\test.py”, line 1, in
import easygui
ModuleNotFoundError: No module named ‘easygui’
运行前需要pip install easygui
成功调用后可以尝试 EasyGUI 拥有的各种功能,并将结果打印至控制台:
二、使用步骤
使用按钮组件
1.msgbox
msgbox() :显示一个消息框 或者自定义是否显示一个标题title,并提供一个按钮,该按钮可理解为程序是否向下一步的执行的开关按钮
函数原型:msgbox(msg=‘’, title=’ ', ok_button=‘OK’, image=None, root=None)
调用方法:msgbox(‘message’, ‘tille name’, ’ botton’),
message默认 :要显示的消息
tille name默认 : 窗口标题
botton默认 : ok
如下演示程序和运行显示GUI界面,当点击ok按钮,程序向下执行,打印出GUI msgbox显示结束后程序执行结束
import easygui as egui
egui.msgbox("hello world !", "DC", "OK")
print("GUI msgbox显示结束")
2.enterbox
enterbox() 为用户提供一个最简单的输入框,返回值为用户输入的字符串。
使用方法:enterbox(msg=‘提示信息’, title=’ ‘, default=’', strip=True, image=None, root=None)
参数default为默认初始输入内容,可以删除初始内容
title是窗口标题
示例代码及界面如下:点击 ok 返回输入的内容字符串,点击 Cancel 返回None
import easygui as egui
text = egui.enterbox(msg='输入文件地址的绝对路径:', title='文件选择', default='D:\Python_Project\MapFileAnalyzer\map_cfg.txt')
print(text)
3.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 = egui.fileopenbox("请选择一个文件",'','*',['*.py'],True)
print(ret)
4.multenterbox
用户提供多个简单的输入框,将输入内容以列表形式返回
用法参数用法enterbox()一样,只不过输入内容和初始值要以列表形式输入
示例代码和界面如下:
import easygui as egui
file = ['姓名','工号','密码']
ret = []
ret = egui.multenterbox("请输入以下信息登录","登录界面",file)
print(ret)
总结-猜数字游戏
import random
import easygui as egui
egui.msgbox("欢迎进入猜数字小游戏^_^")
secret = random.randint(1, 100)
msg = "猜一下我想要的数字(1~100):"
title = "数字小游戏"
guess = egui.integerbox(msg, title, lowerbound=1, upperbound=100)
while True:
if guess == secret:
egui.msgbox("真厉害,猜中了!")
break
else:
if guess > secret:
egui.msgbox("太大")
else:
egui.msgbox("太小")
guess = egui.integerbox(msg, title, lowerbound=1, upperbound=100)
egui.msgbox("游戏结束")