祝建宇 发表于 2020-8-29 17:44:33

easyGUI疑惑

import easygui as eg
msg = '请填写以下信息'
title = '帐号中心'
fieldNames = ['*用户名','*真实姓名','固定电话','*手机号码','QQ','*E-mail']
fieldValues = []
fieldValues =eg.multenterbox(msg,title,fieldNames)
while 1:
    if fieldValues == None:
      break
    errmsg = ''
    for i in range(len(fieldNames)):
      option = fieldNames.strip()
      if fieldValues.strip() ==''and option =='*':
            errmsg +=('%s为必填项.\n'%fieldNames)
    if errmsg == '':
      break
    fieldValues = eg.multenterbox(errmsg,title,fieldNames,fieldValues)#这里为什么后面又加个fieldValues,有什么意义呢???
print(fieldValues)
红字地方都不明白希望有能讲解的,还有就是最后为什么多加fieldValues?初学编程感觉力不从心。也希望能得到高人指点。

昨非 发表于 2020-8-31 18:01:03

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.strip() #取出fieldName各元素前的【*】并赋值给option
      if fieldValues.strip() == "" and option == "*":
            #判断当输入内容(fieldValue)为空,且前面带【*】时,报错并存到errmsg中
            errmsg += ('【%s】为必填项。\n\n' % fieldNames)
    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 值。
"""


如果解决,别忘了给个最佳{:10_297:}
页: [1]
查看完整版本: easyGUI疑惑