Entry.get() ничего не возвращает tkinter - python 3.4

В следующем коде я пытаюсь открыть новое окно, нажав на кнопку. Одним из необходимых аргументов, передаваемых функции, открывающей новое окно, является строка, взятая из метода entry.get(), но метод ничего не возвращает. Почему это происходит?

window = tk.Toplevel(self)
doc = Document(self.entry_filepath.get())

entry_doc_id = tk.Entry(window, width=20)
entry_doc_id.grid(sticky=W+E+N+S, row=0, column=1, columnspan=3)

button_country_views = tk.Button(window, text="Views by country", command=partial(self.display_views_by_country, doc, entry_doc_id.get()), width=25)                                                               
button_country_views.grid(row=1, column=1, sticky=W+E+N+S)

1 ответ

Решение

Entry.get() вызывается только один раз (partial), когда вы запускаете программу.

Ты можешь использовать lambda на месте partial

command=lambda:self.display_views_by_country(doc, entry_doc_id.get())

Или вы можете определить функцию и назначить ее command

def my_function():
    self.display_views_by_country(doc, entry_doc_id.get())

command=my_function
Другие вопросы по тегам