我在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 也许我应该只是“破坏”表格并重新创建它?当我开始时,重置变量似乎是更简单的选项。任何帮助都感激不尽。
答案 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
也会更改状态。