将for循环中创建的tkinter radiobuttons重置为默认值

时间:2016-11-27 09:08:03

标签: python-3.x tkinter

我在for循环中创建radiobuttons。我希望能够通过一个按钮重置所有值(基本上从头开始重新开始调查),所以我创建了' self.info.buttons = []'并将每个radiobutton附加到此列表中。但是,当我尝试重置为默认值' -1'如果没有答案,它会产生第一个&第四个选项被选中并混淆了分组。

//find all the links of sibling(s) of the 'Test Pages' 
List<WebElement> drop_downs= driver.findElements(By.xpath("//*[contains(text(), 'Test Pages')]/following-sibling::*//a"));

for(WebElement links : drop_downs){
     System.out.println(links.getAttribute("innerHTML"));
}

...重置值的函数....

在名为Info()的类中:

def askQuestions(self):
    file = open('questions.txt')
    questionlist = file.readlines()
    for number, question in enumerate(questionlist, 1):
        self.var = tk.IntVar(value = -1)
        width = 5
        line = '{:5}'.format(number, fill=' ') + ' : ' + question.strip()
        label = tk.Label(self, text=line)
        label.grid(row=number, column = 0, sticky=tk.W)
        options = ['?', 'No', 'Maybe', 'Yes']
        for answer in range(-1,3):
            button = tk.Radiobutton(self, borderwidth=10, variable = self.var, text=options[answer+1], width = 5, value = answer, indicatoron=0)
            button.grid(row = number, column = answer+2)
        self.info.buttons.append(button) # List containing radiobuttons
        self.info.answers.append(self.var)

我没有编程Python,或者Tkinter很长,这可能是一个基本的错误,但我已经尝试了我能想到的一切。来源可在此处获取:https://github.com/inyoka/sand 也许我应该只是“破坏”表格并重新创建它?当我开始时,重置变量似乎是更简单的选项。任何帮助都感激不尽。

1 个答案:

答案 0 :(得分:2)

self.buttons中,您有Button()个不保留答案的对象。您在IntVar()中的self.answers个对象中有答案。因此,您必须重置self.answers

顺便说一句:你不必使用enumerate

def resetFields(self):
    self.name.set(value='')
    self.dob.set(value='')

    for a in self.answers:
        a.set(value=-1)

重置self.answers后,buttons也会更改状态。