python 界面模块EasyGui详细介绍
EasyGui 官网: http://easygui.sourceforge.net
小甲鱼翻译改编的教学文档:http://bbs.fishc.com/thread-46069-1-1.html
EasyGui 的安装
pip install easygui
导入EasyGuid的3种方式
- import easygui
import easygui easygui.msgbox("hi~")
- from easygui import * # 导入整个包,可以直接用函数,但是不推荐,容易污染程序的命名空间
from easygui import * msgbox("hi~")
- import easygui as eg
import easygui as eg eg.msgbox("hi~")
各种功能演示
import easygui easygui.egdemo()
运行成功后将 Easygui 拥有的各种功能打印至控制台
默认参数和关键字参数
对于 EasyGui 的所有对话框而言,前两个参数都是 消息主体 和 对话框标题。
默认参数 :默认参数使得可以尽可能少去设置参数,例如 msgbox()函数标题标题部分是可选的,因此调用 msgbox()函数的时候只需要指定一个消息参数即可。
import easygui as eg eg.msgbox('你好啊~')
同样也可以指定 标题参数 和 消息参数 ,例如:
import easygui as eg eg.msgbox('你好啊~', 'hello')
关键字参数 :假如需要使用一个按钮组件,但是不想指定标题参数(第二个参数),依然可以使用关键字参数的方法指定choices参数(第三个参数)的值,例如:
import easygui as eg choices = ['愿意', '不愿意', '有时候愿意'] reply = eg.choicebox('你愿学习吗?', choices = choices)
使用其他组件
1、msgbox()
msgbox(msg='(Your message goes here)', title=' ', ok_button='OK', image=None, root=None)
msg :消息参数
title :标题参数
ok_button :按钮参数(默认参数),可以修改
eg.msgbox('hello!', ok_button='谢谢')
2、ccbox()
ccbox(msg='Shall I continue?', title=' ', choices=('Continue', 'Cancel'), image=None)
choices
:提供一个选择:C[o]ntinue
或C[a]ncel
, 并相应返回True
或者False
。C[o]ntinue
中的[o]
表述快捷键,也就是说用户在键盘上(必须在英文输入状态下)敲一下o
字符,就相当于单击C[o]ntinue
。当然不一定非得是C[o]ntinue
或C[a]ncel
,可以是自定义的,例如:
import easygui as eg import sys if eg.ccbox('继续学习吗', choices=('继续[a]', '算了吧,睡觉了[e]')): eg.msgbox('还在学习啊') else: sys.exit(0)
3、ynbox()
def ynbox(msg="Shall I continue?", title=" ", choices=("[<F1>]Yes", "[<F2>]No"), image=None, default_choice='[<F1>]Yes', cancel_choice='[<F2>]No'):
与ccbox()
函数一样,只是这里的默认的 choices
参数值不同而已,[F1]
作为YES
的快捷键使用
4、buttonbox()
def buttonbox(msg="", title=" ", choices=("Button[1]", "Button[2]", "Button[3]"), image=None, images=None, default_choice=None, cancel_choice=None, callback=None, run=True):
可以使用buttonbox()
定义自己的一组按钮,当用户单击任意一个按钮的时候,buttonbox()
函数返回按钮的文本内容。如果用户取消或关闭窗口,那么会返回默认选项(第一个选项)
5、indexbox()
def indexbox(msg="Shall I continue?", title=" ", choices=("Yes", "No"), image=None, default_choice='Yes', cancel_choice='No'):
基本与buttonbox()
函数一样,区别就是当用户选择第一个按钮的时候返回索引值0
,选择第二个按钮的时候返回索引值1
。
6、boolbox()
def boolbox(msg="Shall I continue?", title=" ", choices=("[Y]es", "[N]o"), image=None, default_choice='Yes', cancel_choice='No'):
如果第一个按钮被选择则返回 True
,否则返回False
7、在buttonbox()中显示图片
当你调用一个 buttonbox()
函数(例如 msgbox()
, ynbox()
, indexbox()
等等)的时候,你还可以为关键字参数 image
赋值,这是设置一个 .gif
格式的图像(可以是.jpg、.gif、.png):
import easygui as g g.buttonbox("大家说嗅嗅可爱吗?",image="xiuxiu.gif",choices=("可爱","不可爱","财迷"))
为用户提供一系列选项
buttonbox()
的几个函数为用户提供了一个简单的按钮选项,单如果有很多选项,或者选项内容特别长的话,更好的策略是为他们提供一个可选择的列表。
1、choicebox()
def choicebox(msg="Pick an item", title="", choices=[], preselect=0, callback=None, run=True):
choicebox()
函数为用户提供了一个可选择的列表,使用序列(元组或列表)作为选项,这些选项会按照字母进行排序。
eg.choicebox(msg='你最喜欢的电影是什么?', title='', choices=['盗梦空间', '阿甘正传', '辛特勒名单'])
9、multchoicebox()
def multchoicebox(msg="Pick an item", title="", choices=[], preselect=0, callback=None, run=True):
multchoicebox()
函数也是提供一个可选择的列表,与choicebox()
不同的是,multchoicebox()
支持用户选择0个,1个或者同时选择多个选项。multchoicebox()
函数也是使用序列(元组或列表)作为选项,这些选项显示前会按照不区分大小写的方法排好序。
eg.multchoicebox(msg='你最喜欢的电影是什么?', title='', choices=['盗梦空间', '阿甘正传', '辛特勒名单', '肖生克的救赎'])
让用户输入消息
1、enterbox()
def enterbox(msg="Enter something.", title=" ", default="", strip=True, image=None, root=None):
enterbox()
函数为用户提供一个最简单的输入框,返回值为用户输入的字符串。
print(eg.enterbox(msg='请输入你最想说的一句话'))
返回
E:\python\python.exe C:/Users/huan4/Desktop/Python/python/d.py 你好啊!
默认返回的值会自动去除首尾的空格,如果需要保留首尾空格的话请设置参数
strip = False
2、integerbox()
def integerbox(msg="", title=" ", default=None, lowerbound=0, upperbound=99, image=None, root=None):
integerbox()
函数为用户提供一个简单的输入框,用户只能输入范围内(lowerbound
参数设置的最小值,upperbound
参数设置的最大值)的整型数值,否则会要求用户重新输入。
eg.integerbox(msg='请输入你喜欢的一个数字(1~10)', lowerbound=1, upperbound=10)
3、multenterbox()
def multenterbox(msg="Fill in values for the fields.", title=" ", fields=[], values=[], callback=None, run=True):
multenterbox()
函数为用户提供多个简单的输入框,要注意以下几点:
如果用户输入的值比选项少的话,则返回列表中的值用空字符串填充为用户输入的选项。
如果用户输入的值比选项多的话,则返回的列表中的值将截断为选项的数值。
如果用户取消操作,则返回域中列表的值或者
None
值。