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