Кнопка Tkinter не возвращает значение из функции - PullRequest
0 голосов
/ 01 марта 2019

В настоящее время я пытаюсь создать небольшой пользовательский интерфейс для функции, которая возвращает некоторое значение из фрейма данных на основе введенной строки.Строка разбивается, и каждая отдельная подстрока просматривается в моем фрейме данных с помощью iloc.Проблема в том, что при вызове этой функции с помощью кнопки в Tkinter ничего не возвращается.Он работает нормально без Tkinter, поэтому я не уверен, где происходит ошибка.

master = Tk()
e1 = Entry(master)

list_of_inputs = e1.get().split()

def show_entry_fields():
    i=0
    while (i<len(list_of_inputs)):
        return (backend.loc[backend['Keyword'] == list_of_inputs[i]]) 
        i=i+1

Label(master, text="Enter Title").grid(row=0)

e1.grid(row=0, column=1)

Button(master, text='Show', command=show_entry_fields).grid(row=0, column=2, sticky=W, pady=4)

mainloop( )

1 Ответ

0 голосов
/ 01 марта 2019

Пара вещей:

  • Вы проверяете значение своей записи, прежде чем пользователь сможет ее заполнить. Пользователь должен вводить данные только при нажатии кнопки.
  • Ваш цикл while в функции show_entry_fields() всегда будет запускаться один раз, независимо от того, сколько введенных входных данных, поскольку вы помещаете инструкцию возврата в цикл
  • Ваша функция-обработчик должна изменить существующую структуру данных илиграфический компонент, если вы возвращаете свой результат, вы не можете его собрать

Возможная реализация:

master = Tk()
e1 = Entry(master)


def show_entry_fields():
    list_of_inputs = e1.get().split()
    result = []
    for entry in list_of_inputs:
        result.append(backend.loc[backend['Keyword']] == entry)
    # Alternatively, you can create the list with
    # result = [backend.loc[backend['Keyword']] == entry for entry in list_of_inputs]
    # Here, deal with the result    

Label(master, text="Enter Title").grid(row=0)
e1.grid(row=0, column=1)
Button(master, text='Show', command=show_entry_fields).grid(row=0, column=2, sticky=W, pady=4)
mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...