如何编写一个函数与两组radiobutton相乘?

时间:2017-04-20 19:56:38

标签: python tkinter

我写了这段代码:

from tkinter import *
o=Tk()
v1=IntVar()
v2=IntVar()

p1=Radiobutton(o, text='1', variable=v1, value=1)
p1.grid(row=0, column=1)
d1=Radiobutton(o, text='1', variable=v2, value=1)
d1.grid(row=1, column=0)

p2=Radiobutton(o, text='2', variable=v1, value=2)
p2.grid(row=0, column=2)
d2=Radiobutton(o, text='2', variable=v2, value=2)
d2.grid(row=2, column=0)

p3=Radiobutton(o, text='3', variable=v1, value=3)
p3.grid(row=0, column=3)
d3=Radiobutton(o, text='3', variable=v2, value=3)
d3.grid(row=3, column=0)

p4=Radiobutton(o, text='4', variable=v1, value=4)
p4.grid(row=0, column=4)
d4=Radiobutton(o, text='4', variable=v2, value=4)
d4.grid(row=4, column=0)

p5=Radiobutton(o, text='5', variable=v1, value=5)
p5.grid(row=0, column=5)
d5=Radiobutton(o, text='5', variable=v2, value=5)
d5.grid(row=5, column=0)

w=Label(o, text='0')
w.place(x=90, y=60)
w.config(font=("Arial", 30), foreground="magenta")
o.mainloop()

我的目标是使用这两组radiobuttons作为乘数,结果将显示带标签。我的主要问题是,我不知道如何提取附加到两个拾取的radiobutton的值,并将它们乘以将返回打印在标签内的结果的函数。

1 个答案:

答案 0 :(得分:0)

以下情况如何?

from tkinter import *

def updateLabel():
    w.config(text = str(v1.get()*v2.get()))

o=Tk()
v1=IntVar()
v2=IntVar()

for i in range(1,6):
    Radiobutton(o, text = str(i), variable = v1, value = i, command = updateLabel).grid(row=0,column=i)
    Radiobutton(o, text = str(i), variable = v2, value = i, command = updateLabel).grid(row=i,column=0)

w=Label(o, text='0')
w.place(x=90, y=60)
w.config(font=("Arial", 30), foreground="magenta")
o.mainloop()

这里的关键是将command选项设置为当更改单选按钮选择时要调用的函数。请注意,您不需要保留对单选按钮的引用,因为您在制作单选按钮后没有对单选按钮执行任何操作。与它们交互只能通过v1v2变量完成。