文章目录
- 简介
- box
- 回调函数
简介
EasyGUI是一个非常简单的GUI模块,提供了许多对话框,所有交互操作都通过简单的函数调用实现。支持pip安装,十分便捷
pip install easygui
通过一行代码,即可实现下面的对话框
其对应的代码为
import easygui
easygui.buttonbox('Select a GUI.', 'Favorite GUI', ('tkinter', 'wxpython', 'easygui'))
上述代码中,调用了buttonbox函数,生成了一个按钮对话框,其输入的三个参数,分别是对话框内容,窗口标题,以及按钮中显示的文字列表。
box
EasyGUI封装了各种实用的对话框,均以box为后缀,列表如下,其具体的API可参照官网API。
说明 | |
---|---|
msgbox | 提供OK选项 |
ccbox | 提供Continue, Cancel选项 |
ynbox | 提供Yes, No选项 |
buttonbox | 可自定义不限量的按钮选项 |
indexbox | 自定义一组选项 |
boolbox | 提供多个按钮选项,第一个按钮返回1,其余返回0 |
choicebox | 提供选择列表,以及OK, Cancel选项 |
multchoicebox | 提供多组选择列表,以及四个按钮 |
enterbox | 提供文本输入框 |
integerbox | 数字输入框 |
multenterbox | 多组文本输入框 |
passwordbox | 密码输入框 |
multpasswordbox | 多组密码输入框 |
textbox | 文本展示框 |
codebox | 代码展示对话框 |
diropenbox | 文件夹选择对话框 |
fileopenbox | 文件选择对话框 |
filesavebox | 文件保存对话框 |
exceptionbox | 错误报警对话框 |
以多组文本输入框为例,可实现如下功能
代码如下
from easygui import multenterbox
msg = "Enter your personal information"
title = "Credit Card Application"
names = ["Name", "Age", "gender", "Phone Number", "E-mail"]
values = multenterbox(msg, title, names)
其返回值是values是一个元组,即为多条文本框中输入的内容。
回调函数
在multenterbox函数中,除了上面输入的msg, title, fields这三项参数之外,还有默认内容values, 以及回调函数callback。这个回调函数的输入值,就是我们弹出的那个多文本框本身,从而实现如下效果
代码如下
from easygui import msgboxcb = lambda mb : msgbox(",".join([f"{names[i]}: {mb.values[i]}"+":" for i in range(5)]))
multenterbox(msg, title, names, values=['a']*5, callback=cb)