Entry.get()不返回任何东西tkinter - python 3.4

时间:2015-11-29 14:38:54

标签: python-3.x tkinter tkinter-entry

在下面的代码中,我试图通过单击按钮打开一个新窗口。传递给打开新窗口的函数的必要参数之一是从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 个答案:

答案 0 :(得分: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