【问题标题】:How do I check if any entry boxes are empty in Tkinter?如何检查 Tkinter 中的输入框是否为空?
【发布时间】:2017-09-01 02:55:52
【问题描述】:

我正在使用 Python 2.7 在 Tkinter 中制作 GUI。我有一个框架,其中包含大约 30 个输入框。我现在无法访问代码,但有没有办法检查是否有任何或几个框为空,以便我可以警告用户并询问他们是否要继续?

有没有办法用'for'循环遍历它们并检查每个条目的长度。或者是否有命令检查任何一个框是否为空?

【问题讨论】:

    标签: python python-2.7 tkinter tkinter-entry


    【解决方案1】:

    您可以使用Tkinter.Entry.get method获取条目的内容。

    使用len函数和get方法检查条目的长度:

    if len(entry_object.get()) == 0:  # empty!
        # do something
    

    或者更优选:

    if not entry_object.get(): # empty! (empty string is false value)
        # do something
    

    使用for循环检查几个入口小部件:

    for entry in entry_list:
        if not entry_object.get():
            # empty!
    

    您应该事先填写entry_list

    手动:

    entry_list = []
    
    entry = Entry(...)
    ...
    entry_list.append(entry)
    
    entry = Entry(...)
    ...
    entry_list.append(entry)
    

    或者,使用winfo_children 方法(获取所有条目):

    entry_list = [child for child in root_widget.winfo_children()
                  if isinstance(child, Entry)]
    

    【讨论】:

    • 我如何在多个输入框上进行迭代?
    • @user3242026,使用for 循环:for entry in entry_list: ...。当然,您应该在创建条目时填充entry_list
    • 你如何填充这个列表。 'entry_list.append(element)'?
    • @falsetru 哎呀,我做我的时候还没有看到发布的解决方案。如果您添加有关从Tk().children 构建列表的内容,我很乐意删除:)
    • @adsmith,我添加了填充条目列表的代码。顺便说一句,我改用了明确记录的winfo_children()
    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 2022-07-24
    • 2018-05-26
    • 2020-09-17
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多