Python 3.x 将在for循环中创建的tkinter单选按钮重置为默认值
我正在for循环中创建单选按钮。我希望能够用一个按钮重置它们的所有值(基本上重新开始调查),因此我创建了“self.info.buttons=[]”,并将每个radiobutton追加到此列表中。但是,当我尝试将unanswered重置为默认值“-1”时,会导致选择第一个和第四个选项,并将分组搞砸Python 3.x 将在for循环中创建的tkinter单选按钮重置为默认值,python-3.x,tkinter,Python 3.x,Tkinter,我正在for循环中创建单选按钮。我希望能够用一个按钮重置它们的所有值(基本上重新开始调查),因此我创建了“self.info.buttons=[]”,并将每个radiobutton追加到此列表中。但是,当我尝试将unanswered重置为默认值“-1”时,会导致选择第一个和第四个选项,并将分组搞砸 def askQuestions(self): file = open('questions.txt') questionlist = file.readlines() for
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)
…重置值的函数
在名为Info()的类中:
我没有编写Python或Tkinter很长时间,这可能是一个基本的错误,但我已经尝试了我能想到的一切。可从以下网址获取来源:
也许我应该“摧毁”这个表单并重新创建它?当我开始时,重置变量似乎是更简单的选择。感谢您的帮助。在
self.buttons
中,您有Button()
对象,这些对象不保留答案。您在IntVar()
对象中有答案,这些对象位于self.answers
中。因此,您必须重置self.answers
顺便说一句:您不必使用枚举
def resetFields(self):
self.name.set(value='')
self.dob.set(value='')
for a in self.answers:
a.set(value=-1)
当您重置
self.answers
时,按钮也会更改状态。在self.buttons
中,您拥有的Button()
对象不保留答案。您在IntVar()
对象中有答案,这些对象位于self.answers
中。因此,您必须重置self.answers
顺便说一句:您不必使用枚举
def resetFields(self):
self.name.set(value='')
self.dob.set(value='')
for a in self.answers:
a.set(value=-1)
重置self.answers
后,按钮也会更改状态。self.buttons在'info'类中,另一个函数在绝望类中,因此我使用self.info.buttons访问它。我将编辑问题以使其更清楚。self.buttons在'info'类中,另一个函数在绝望类中,因此我使用self.info.buttons访问它。我会编辑这个问题,让它更清楚。太棒了,它现在可以工作了。我认为我在这个问题上工作的时间越长,我就离解决方案越远。谢谢你,我真的很感谢你的帮助。太棒了,现在可以用了。我认为我在这个问题上工作的时间越长,我就离解决方案越远。谢谢你,我真的很感谢你的帮助。