【发布时间】:2017-09-01 02:55:52
【问题描述】:
我正在使用 Python 2.7 在 Tkinter 中制作 GUI。我有一个框架,其中包含大约 30 个输入框。我现在无法访问代码,但有没有办法检查是否有任何或几个框为空,以便我可以警告用户并询问他们是否要继续?
有没有办法用'for'循环遍历它们并检查每个条目的长度。或者是否有命令检查任何一个框是否为空?
【问题讨论】:
标签: python python-2.7 tkinter tkinter-entry
我正在使用 Python 2.7 在 Tkinter 中制作 GUI。我有一个框架,其中包含大约 30 个输入框。我现在无法访问代码,但有没有办法检查是否有任何或几个框为空,以便我可以警告用户并询问他们是否要继续?
有没有办法用'for'循环遍历它们并检查每个条目的长度。或者是否有命令检查任何一个框是否为空?
【问题讨论】:
标签: python python-2.7 tkinter tkinter-entry
您可以使用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)]
【讨论】:
for 循环:for entry in entry_list: ...。当然,您应该在创建条目时填充entry_list。
Tk().children 构建列表的内容,我很乐意删除:)
winfo_children()。