如果我们想让用户在有限的一些选项中选择,则可以使用choicebox或者multchoicebox,它们的区别在于choicebox只能选择一个选项,而multchoicebox可以选择多个选项。choicebox的函数原型是:
choicebox(msg='Pick an item',title='',choices=[],preselect=0,callback=None,run=True)
其中,choices参数用于指定选项值,而preselect用于指定默认选中的选项索引,从0开始;callback是回调函数,它接收一个ChoiceBox对象作为返回值,可以根据ChoiceBox对象中的choices属性获得选中的值。
下面我们来看一个例子:
from easygui import *
text = "选择您所在的省/市"
title = "所在省/市"
# 选项
choices = ["北京", "上海", "广东", "香港"]
def cb(v):
print(v.choices)
v.stop()
# 创建一个choicebox
output = choicebox(text,title, choices=choices,callback=cb)
# 信息提示框标题
title = "Message Box"
# 信息
message = "您选择了:" + str(output)
# 用信息提示框显示用户的选择
msg = msgbox(message, title)
它的执行效果如下图所示:
当选择其中一个选项后,将会显示在新弹出的MsgBox中,如下图所示:
以上代码可以直接访问此链接查看执行效果。
如果要让用户可以从多个选项中选取多个,则可以使用multchoicebox()函数,它将会显示一个多选多的选择对话窗口。multchoicebox()函数的原型是:
multchoicebox(msg='Pick an item',title='',choices=[],preselect=0,callback=None,run=True)
其参数含义和choicebox中的一样,不再赘述。它和choicebox相比较,在界面上多了两个按钮:Select All和Clear All,分别用于全选和情况选择。它的返回值是一个包含选中选项值的列表。
详细的例子,也可以访问此网址查看。