파이썬에 완전히 익숙하지 않아서, 나는 매우 어리석은 구문 오류를 범하고있다.인수가 부분적으로 전달되지 않음
from tkinter import *
from functools import partial
def get_search_results(keyword):
print("Searching for: ", keyword)
def main():
# ***** Toolbar *****
toolbar = Frame(main_window)
toolbar.pack(fill=X)
toolbar_search_field = Entry(toolbar)
toolbar_search_field.grid(row=0, columnspan=4, column=0)
get_search_results_partial = partial(get_search_results, toolbar_search_field.get())
toolbar_search_button = Button(toolbar, text="Search", command=get_search_results_partial)
toolbar_search_button.grid(row=0, column=5)
main_window = Tk()
main()
main_window.mainloop() # continuously show the window
기본적으로이 코드는 검색 창이있는 창을 만듭니다. 검색 창에 무언가를 입력하고 버튼을 누르면 get_search_results 메소드가 호출됩니다. 부분 함수를 사용하여 함수에서 키워드를 전달하고 있습니다. 그러나 키워드가 콘솔에 인쇄되지 않습니다.
나는 당신이 원하는 것은 더'람다 같은 의심 : get_search_results (toolbar_search_field.get())'. 부분은 여전히 생성 된 지점에서 값을 가져옵니다. – jonrsharpe
[Tkinter Entry의 get 함수가 아무 것도 반환하지 않는 이유는 무엇입니까?] (http://stackoverflow.com/questions/10727131/why-is-tkinter-entrys-get-function-returning-nothing) –