forループ内にラジオボタンを作成しています。 1つのボタンですべての値をリセットすることができます(基本的に最初から調査を再開する)ので、私は 'self.info.buttons = []'を作成し、各ラジオボタンをこのリストに追加しました。しかし、私が試して、未回答のためにデフォルト値 '-1'にリセットすると、最初の&の4番目のオプションが選択され、グループ化されてしまいます。情報()と呼ばれるクラス内forループで作成されたtkinterラジオボタンをデフォルト値にリセットします。
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の長い、それがあるされていない
def resetFields(self):
self.name.set(value = '') #these work
self.dob.set(value = '')
for count, button in enumerate(self.buttons):
self.buttons[count].config(value = -1) # nothing I have tried works.
おそらく初歩的な間違いですが、私は考えることができるすべてを試しました。ソースはここにあります:https://github.com/inyoka/sand おそらく、私はちょうど 'destroy'edフォームをし、それを再作成する必要がありますか?変数をリセットするのは、私が始めたときのほうが簡単でした。どんな援助も感謝して受け取りました。
self.buttonsは 'info'クラスの中にあり、他の関数は絶望的なクラスなので、self.info.buttonsを使ってアクセスします。質問を編集してより明確にする。 – Inyoka