fezoe 发表于 2020-6-15 00:16:51

easygui的问题,求教如何理解

from easygui import *

msg="请填写以下联系方式"
title="账号中心"
filedNames=["*用户名","*真实姓名"," 固定电话","*手机号码"," qq","*E-mail"]
filedValues=[]
filedValues=multenterbox(msg,title,filedNames)

while 1:
(这里的等于None就break 怎么理解哈。这里的filedValues是不是不是空值 因为它是multenterbox 但是为啥要设一个它等于None就break)
    if filedValues ==None:
      break
    errmsg=''
    for i in range(len(filedNames)):
      option=filedNames.strip()
      if filedValues.strip()==''and option=='*':
            errmsg +=('【%s】为必填项。\n\n'% filedNames)
    if errmsg=='':
      break
    filedValues=multenterbox(errmsg,title,filedNames,filedValues)
print(("用户资料如下:%s" %str(filedValues)))

txxcat 发表于 2020-6-15 03:55:49

在easygui的各个窗口中,如果点了cancel或者关闭窗口,就会返回一个None,这里的语句就是发现了这种操作就break退出循环 。

Twilight6 发表于 2020-6-15 07:38:35



这里的等于None就break 怎么理解哈。这里的filedValues是不是不是空值
要知道是不是返回空值你可以直接打印这个组件结果试试看:
from easygui import *

msg="请填写以下联系方式"
title="账号中心"
filedValues=multenterbox(msg,'Test',['测试'])

print(filedValues)

你会发现你点击 Cancle 时候,不管输入框输入什么都是打印 None

而点 OK 时候是返回输入框内的字符串列表,输入框为空时返回一个列表中元素为空字符串的列表

因为它是multenterbox 但是为啥要设一个它等于None就break
这个时候小程序差不多模拟的是账号注册操作, Cancle 就是取消意思,当用户点 Cancle 就是想取消注册了

此时就应该退出窗口的事件循环,否则你取消键就没有意义了,除非你点 X ,否则循环会直到你带* 号全部填完为止
页: [1]
查看完整版本: easygui的问题,求教如何理解