Brucey 发表于 2018-8-14 19:09:23

如何理解有关multenterbox代码



import easygui as g

msg = "请填写以下联系方式"
title = "账号中心"
fieldNames = [" *用户名", " *真实姓名", "固定电话", " *手机号码", "QQ", " *E-mail"]
fieldValues = []
fieldValues = g.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\n' % fieldNames)
    if errmsg == "":
      break
    fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)

print("用户资料如下:%s" % str(fieldValues))

无符号整形 发表于 2018-8-14 19:09:24

import easygui as g #导入模块

msg = "请填写以下联系方式"#显示的说明
title = "账号中心"#窗口标题
fieldNames = [" *用户名", " *真实姓名", "固定电话", " *手机号码", "QQ", " *E-mail"]#需要输入的项目
fieldValues = []#用来存储用户在上面的项目输入的信息
fieldValues = g.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\n' % fieldNames)#构建错误信息
    if errmsg == "":#假如没有错误信息(即上面那句没有执行)
      break#跳出循环,显示信息
    fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)#假如还没有跳出循环(有东西没有填),就继续显示。

print("用户资料如下:%s" % str(fieldValues))#输出信息

Brucey 发表于 2018-8-14 19:26:39

无符号整形 发表于 2018-8-14 19:23


老哥,谢了!我就是卡在了break上,尤其是第一个break上的语句

无符号整形 发表于 2018-8-14 19:27:32

Brucey 发表于 2018-8-14 19:26
老哥,谢了!我就是卡在了break上,尤其是第一个break上的语句

不用谢~{:5_109:}

塔利班 发表于 2018-8-14 19:28:31

multenterbox(msg='Fill in values for the fields.', title=' ', fields=[], values=[], callback=None, run=True)
multenterbox() 为用户提供多个简单的输入框,要注意以下几点:
如果用户输入的值比选项少的话,则返回列表中的值用空字符串填充用户为输入的选项。
如果用户输入的值比选项多的话,则返回的列表中的值将截断为选项的数量。
如果用户取消操作,则返回域中的列表的值或者 None 值。

这里fieldNames相当于tkinter的label标签的列表,一次传入多个label文本
fieldValues是文本框多行输入的列表,没输入默认设置为空

这里while 1循环实际就是捕捉用户输入,当有输入时,fieldValues就不为空
errmsg只是用来判断必填项是否有内容,并给出提示信息

bravsheng 发表于 2021-7-27 14:20:56

无符号整形 发表于 2018-8-14 19:09


很棒,你的注释有助于理解!
页: [1]
查看完整版本: 如何理解有关multenterbox代码