2014-09-03 3 views
2

Есть ли способ закрыть окно tk со способом привязки? основно я это:Закрыть окно tk при нажатии клавиши

def foo(): 
    root = tk.Tk() 
    E = tk.Entry(root, textvariable=folderURL) 
    E.bind("<Return>", root.destroy) 

Так что это не работает becuase его пытается отправить параметр события к функции уничтожения, который должен получить только один аргумент (который, вероятно, сам, не уверен в этом). Одним из решений было бы сделать root глобальным и связать еще одну функцию с событием «Enter», и эта функция вызовет root.destroy, но я хотел бы сделать это, не делая root-глобальным, потому что он без проблем запускает мое пространство имен. возможное?

Спасибо!

ответ

3

Используйте функцию лямбды, который принимает событие и вызывает root.destroy()

E.bind("<Return>", lambda e: root.destroy()) 
+0

Так немой меня! im new для python, поэтому я забыл, что у него есть вложенные функции ... спасибо! –