Tkinterコールバックとして実行される関数から返されたオブジェクトを取得するにはどうすればよいですか?
import Tkinter as Tk
from functools import partial
def square(x):
return x*x
root = Tk.Tk()
var = Tk.IntVar(root, value=0) #the variable the gets passed to the class call
menu = Tk.OptionMenu(root, var, *[0,1,2,3,4,5]) #a drop-down list to choose a value for the variable
menu.pack()
button = Tk.Button(root, text='click', command = partial(square,var.get())) #a button that calls the class
button.pack()
root.mainloop()
明らかに、これは単純化された例です。実際には、ボタンによって呼び出される関数はオブジェクトを返します。これは、以降の操作のためにメインのPython名前空間に保持されるオブジェクトのリストに追加したいと思います。
とにかく、ここでユーザーはGUIを使用して関数の引数を選択し、関数を実行するボタンを押すことができます。ただし、コールバックは戻り値を受け入れないため、関数の戻り値はエーテルに失われる運命にあるようです。global
これは、の定義に醜いものを使用せずに克服できますsquare(x)
か?