Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何为每个变量选择一个Tkinter单选按钮_Loops_Tkinter_Radio Button - Fatal编程技术网

Loops 如何为每个变量选择一个Tkinter单选按钮

Loops 如何为每个变量选择一个Tkinter单选按钮,loops,tkinter,radio-button,Loops,Tkinter,Radio Button,我试图做一个循环,填充9个单选按钮,每个按钮有4个选项,并放置在一个网格中。但是,在下面的代码词中,我可以为每个问题选择多个选项。我的理解是,对于每个变量,我只能选择一个。循环是否构造错误 MODES = [ ('dep_name1', 'dep_but1', 2, "Not at all", 'op1'), ('dep_name2', 'dep_but2', 3, "Several days", 'op2'), ('dep_na

我试图做一个循环,填充9个单选按钮,每个按钮有4个选项,并放置在一个网格中。但是,在下面的代码词中,我可以为每个问题选择多个选项。我的理解是,对于每个变量,我只能选择一个。循环是否构造错误


MODES = [
    ('dep_name1', 'dep_but1', 2, "Not at all", 'op1'),
    ('dep_name2', 'dep_but2', 3, "Several days", 'op2'),
    ('dep_name3', 'dep_but3', 4, "More than half the days", 'op3'),
    ('dep_name4', 'dep_but4', 5, "Nearly everyday", 'op4'),
    ]

for r in range (2, 11):
    for dep_name, button, c, text, b_val in MODES:
        button = tk.StringVar()
        # button.set("L")
        dep_name = tk.Radiobutton(window, text=text, variable=button, indicatoron=0, value=b_val).grid(row=r, column=c, sticky='e')

window.columnconfigure("all", weight=1)
window.rowconfigure("all", weight=1)


window.mainloop()

您正在为每个单选按钮创建一个变量。每组单选按钮应有一个变量

由于变量一次只能有一个值,tkinter使用该变量来知道哪些单选按钮属于逻辑组。也就是说,具有相同变量的所有单选按钮都是一组逻辑按钮

这里有一种方法:

vars = []
for r in range (2, 11):
    var = tk.StringVar(value="op1")
    vars.append(var)
    for dep_name, button, c, text, b_val in MODES:
        tk.Radiobutton(window, text=text, variable=var, indicatoron=0, value=b_val).grid(row=r, column=c, sticky='e')
本例将变量保存到列表中,以便您可以通过代码中其他地方的索引来引用它们

我不太明白
dep_name
dep_按钮
应该代表什么。在这两种情况下,都是从模式中初始化它们,然后在循环中更改它们。无论如何,关键是您需要在外循环内部创建变量,以便为每组单选按钮创建一个变量