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