2015-11-29 61 views
0

在下面的代碼中,我試圖通過單擊一個按鈕來打開一個新窗口。傳遞給打開新窗口的函數的必要參數之一是從entry.get()方法獲取的字符串,但該方法不返回任何內容。這是爲什麼發生?Entry.get()不返回tkinter - python 3.4

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

可能'Entry.get()'調用僅當您啓動一次程序。定義函數並將其分配給'command'或使用'lambda' – furas

+0

在這種情況下,我將如何使用'lambda'? – AutomEng

回答

1

Entry.get()只調用一次(由partial)當您啓動程序。

可以代替使用lambdapartial

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 
+0

非常感謝。這立即奏效。 – AutomEng

相關問題