3

ユーザーが表示されているリストから何を選択したかを確認する方法があるかどうか疑問に思っていました。たとえば、ユーザーが["Apple","Orange","Grapes"]いずれかを選択した直後ですか?

ユーザーがオプションボックスをクリックして Apple をクリックすると、Tkinter は何かを返します。

次に、選択をたとえばオレンジに切り替えると、その場で何かが返されます。

ありがとう!


パラメータを正しく配置するには?

from Tkinter import *

def option_changed(a):
    print "the user chose the value {}".format(variable.get())
    print a

master = Tk()

a = "Foo"
variable = StringVar(master)
variable.set("Apple") # default value
variable.trace("w", option_changed(a))

w = OptionMenu(master, variable, "Apple", "Orange", "Grapes")
w.pack()

mainloop()
4

2 に答える 2

7

をトレースしStringVarます。

from Tkinter import *

def option_changed(*args):
    print "the user chose the value {}".format(variable.get())
    print a

master = Tk()

a = "Foo"
variable = StringVar(master)
variable.set("Apple") # default value
variable.trace("w", option_changed)

w = OptionMenu(master, variable, "Apple", "Orange", "Grapes")
w.pack()

mainloop()

ここでoption_changedは、ユーザーがオプション メニューからオプションを選択するたびに呼び出されます。


trace 引数をラムダでラップして、独自のパラメーターを指定できます。

def option_changed(foo, bar, baz):
    #do stuff

#...
variable.trace("w", lambda *args: option_changed(qux, 23, "hello"))
于 2014-03-17T18:54:45.730 に答える