我正在尝试创建一个设置窗口,其中包含多组TkInter Radiobutton
. 他们应该修改我以后可以使用的文本变量 .
我有以下代码:
# radiobutton group 1
settingSort = ""
settingSortRadio1 = tkinter.Radiobutton(settingsWindow, text="Frequency", variable=settingSort, value="freq")
settingSortRadio1.select()
settingSortRadio1.pack()
settingSortRadio2 = tkinter.Radiobutton(settingsWindow, text="Alphabetical", variable=settingSort, value="alpha")
settingSortRadio2.pack()
#radiobutton group 2
settingAnalyseRadio1 = tkinter.Radiobutton(settingsWindow, text="Word frequency", variable=settingAnalyse, value="wfreq")
settingAnalyseRadio1.select()
settingAnalyseRadio1.pack()
settingAnalyseRadio2 = tkinter.Radiobutton(settingsWindow, text="Letter frequency", variable=settingAnalyse, value="lfreq")
settingAnalyseRadio2.pack()
但是,这些按钮似乎仍然是同一组的一部分 . 选择组1中的按钮将取消选择窗口中的所有其他按钮(包括组2中),反之亦然 .
我怎样才能解决这个问题?
2 回答
这不起作用,因为你需要使用variable class而不是你所做的 .
我的意思是,你需要改变这一行:
至:
然后根据您的具体需要you need to initialize
settingSort
.这是因为你没有使用tkinter中的in built变量类 .
您需要执行以下操作:
让我们分解一下,让它更容易理解 .
所以上面我们创建了两个
StringVar()
变量 . 就你需要关注的而言,这些只是"containers",它们存储特定小部件的 Value . 我们创建两个因为我们有两个不同的Radiobutton
小部件组 .上面我们将
StringVar()
变量的值设置为与每个组的第一个Radiobutton
小部件的值相同(我们即将初始化) . 这意味着当绘制Radiobutton
时,默认情况下将开始选择每个组中的第一个 .在上面我们初始化了
Radiobutton
小部件 . 我们使用每个Radiobutton
的variable
属性来分配与每个组相关联的变量类(组1的var1
和组2的var2
),然后我们使用value
属性将Radiobutton
s应该"store"分配给它们的相关变量 .这允许我们在2 "groups"中创建4个
Radiobutton
,它可以独立于另一个"group"更新两个变量 .