import easygui as g
msg = "请填写以下联系方式"
title = "账号中心"
fieldNames = [" *用户名", " *真实姓名", " 固定电话", " *手机号码", " QQ", " *E-mail"]
fieldValues = [] #定义一个空列表来存储 将要输入的值 (跟fieldName一一对应)
fieldValues = g.multenterbox(msg, title, fieldNames)
#这一行最后一个参数是fieldNames ,即每个输入框前的名字
while 1:
if fieldValues == None: #输入为空
break
errmsg = "" #定义空字符串用来存储报错
for i in range(len(fieldNames)): #遍历每一行
option = fieldNames[i].strip() #取出fieldName各元素前的【*】并赋值给option
if fieldValues[i].strip() == "" and option[0] == "*":
#判断当输入内容(fieldValue)为空,且前面带【*】时,报错并存到errmsg中
errmsg += ('【%s】为必填项。\n\n' % fieldNames[i])
if errmsg == "":#毫无问题
break
fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
#这一行的目的是将multenterbox的全部内容返回给名为fieldValues的列表(恰巧重名而已,不必在意)
print("用户资料如下:%s" % str(fieldValues))
"""
具体解释如下(官方文档):
multenterbox()
multenterbox(msg='Fill in values for the fields.', title=' ', fields=[], values=[], callback=None, run=True)
multenterbox() 为用户提供多个简单的输入框,要注意以下几点:
如果用户输入的值比选项少的话,则返回列表中的值用空字符串填充用户为输入的选项。
如果用户输入的值比选项多的话,则返回的列表中的值将截断为选项的数量。
如果用户取消操作,则返回域中的列表的值或者 None 值。
"""
如果解决,别忘了给个最佳 |