这是因为你没有使用tkinter中的in built变量类 .
您需要执行以下操作:
from tkinter import *
root = Tk()
var1 = StringVar()
var2 = StringVar()
var1.set(0)
var2.set(0)
Radiobutton(root, text = "group1", variable = var1, value = 0).pack()
Radiobutton(root, text = "group1", variable = var1, value = 1).pack()
Radiobutton(root, text = "group2", variable = var2, value = 0).pack()
Radiobutton(root, text = "group2", variable = var2, value = 1).pack()
root.mainloop()
让我们分解一下,让它更容易理解 .
var1 = StringVar()
var2 = StringVar()
所以上面我们创建了两个 StringVar() 变量 . 就你需要关注的而言,这些只是"containers",它们存储特定小部件的 Value . 我们创建两个因为我们有两个不同的 Radiobutton 小部件组 .
var1.set(0)
var2.set(0)
上面我们将 StringVar() 变量的值设置为与每个组的第一个 Radiobutton 小部件的值相同(我们即将初始化) . 这意味着当绘制 Radiobutton 时,默认情况下将开始选择每个组中的第一个 .
Radiobutton(root, text = "group1", variable = var1, value = 0).pack()
Radiobutton(root, text = "group1", variable = var1, value = 1).pack()
Radiobutton(root, text = "group2", variable = var2, value = 0).pack()
Radiobutton(root, text = "group2", variable = var2, value = 1).pack()
在上面我们初始化了 Radiobutton 小部件 . 我们使用每个 Radiobutton 的 variable 属性来分配与每个组相关联的变量类(组1的 var1 和组2的 var2 ),然后我们使用 value 属性将 Radiobutton s应该"store"分配给它们的相关变量 .
这允许我们在2 "groups"中创建4个 Radiobutton ,它可以独立于另一个"group"更新两个变量 .