Python - Tkinter RadioButton If Statement

时间:2014-01-18 15:23:55

标签: python if-statement tkinter

我有一个单选按钮,可让我选择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()

1 个答案:

答案 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()