문제

I am making a GUI in Tkinter with Python 2.7. I have a frame with about 30 entry boxes among other things. I don't have access to the code right now, but is there a way to check if any or several of the boxes are empty so I can warn the user and ask them if they want to proceed?

Is there a way to go through each of them with a 'for' loop and check the length of each entry. Or is there a command to check if any box is empty?

도움이 되었습니까?

해결책

You can get the content of the entry using Tkinter.Entry.get method.

Check the length of the entry using len function and get method:

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

or more preferably:

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

Use for loop to check several entry widgets:

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

You should populate entry_list beforehand.

Manually:

entry_list = []

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

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

or, using winfo_children method (to get all entries):

entry_list = [child for child in root_widget.winfo_children()
              if isinstance(child, Entry)]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top