2014-02-19 2 views
0

Я делаю GUI в Tkinter с Python 2.7. Между прочим, у меня есть рама с примерно 30 ящиками. У меня нет доступа к коду прямо сейчас, но есть ли способ проверить, нет ли какого-либо или нескольких ящиков, чтобы я мог предупредить пользователя и спросить их, хотят ли они продолжить?Как проверить, пустые ли в Tkinter поля ввода?

Есть ли способ пройти через каждый из них с помощью цикла «для» и проверить длину каждой записи. Или есть команда, чтобы проверить, пусто ли поле?

ответ

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)] 
+0

Как бы я итерацию над этим несколько полей ввода? – Cole

+1

@ user3242026, используйте 'for' loop:' для записи в entry_list: ... '. Конечно, вы должны заполнять 'entry_list' при создании записей. – falsetru

+0

как вы собираетесь заполнять этот список. 'Entry_list.append (элемент)'? – Cole

Смежные вопросы