我有一个单选按钮,可让我选择0,1或2.以下脚本在终端中打印0,1或2,但我希望它根据我选择的内容做“填充”。
例如,如果我选择0,我希望它执行root.destroy() 如果我选择1,我希望它做其他事情等。
我认为我需要声明一个全局变量,但它似乎不起作用。
这是脚本。
root = Tk()
v = IntVar()
v.set(0) # set to 0 pics as default. Just looks prettier...
languages = [
("0 Pics",0),
("1 Pic",1),
("2 Pics",2),
]
def ShowChoice():
world = v.get()
global world
print world
Label(root, text="""How many pictures do you have left to scan?""", padx = 15).pack()
for txt, val in languages:
Radiobutton(root,
text=txt,
padx = 20,
variable=v,
command=ShowChoice,
value=val).pack(anchor=W)
mainloop()
Radiobutton(root,
text=txt,
indicatoron = 0,
width = 20,
padx = 20,
variable=v,
command=ShowChoice,
value=val).pack(anchor=W)
print 'The V get variable is: ' + world()
答案 0 :(得分:2)
您可以使用lambda通过参数传递函数。
for txt, val in languages:
Radiobutton(root,
text=txt,
padx = 20,
variable=v,
command=lambda: ShowChoice(root),
value=val).pack(anchor=W)
在ShowChoice函数中,只需使用if / else来执行'stuff',具体取决于所选内容。 例如。
def ShowChoice(root):
world = v.get()
if world == 0:
root.destroy()