2016-06-02 2 views
0

Я пытаюсь создать меню выбора для вопросов с четырьмя вариантами. Я создаю четыре переключателя, по одному для каждого выбора. По какой-то причине, когда появляется форма, последние три уже выбраны. Когда вы нажимаете на один, выбирается только эта кнопка, а другие становятся недоступными. Я бы хотел, чтобы исходная версия формы не выбрала ни одного из них.Инициализация кнопок радиосвязи Tkinter

  self.radio_button_frame = Frame(self) 
      self.radio_button_frame.grid(row=1, column=1, rowspan=4) 
      self.correct_label = Label(self, text="Correct: " + str(self.health_regain), width=25, justify=RIGHT) 
      self.correct_label.grid(row=0, column=3) 
      #space the image so it takes up 4 rows 
      self.hydra_label.grid_forget() 
      self.hydra_label.grid(row=0, column=0, rowspan=6) 

      #get the question 
      self.question = self.question_base.get_question() 
      self.answer = 0 

      #get rid of the begin button 
      self.begin_button.grid_forget() 

      #create radio buttons for each question choice 
      self.description_label.config(text=self.question.question) 
      self.radio_button_1 = Radiobutton(self.radio_button_frame, text=self.question.choice_a, padx=10, value=0, justify=LEFT, variable= self.answer) 
      self.radio_button_1.pack(anchor=W) 
      self.radio_button_2 = Radiobutton(self.radio_button_frame, text=self.question.choice_b, padx=10, value=1, justify=LEFT, variable= self.answer) 
      self.radio_button_2.pack(anchor=W) 
      self.radio_button_3 = Radiobutton(self.radio_button_frame, text=self.question.choice_c, padx=10, value=2, justify=LEFT, variable= self.answer) 
      self.radio_button_3.pack(anchor=W) 
      self.radio_button_4 = Radiobutton(self.radio_button_frame, text=self.question.choice_d, padx=10, value=3, justify=LEFT, variable= self.answer) 
      self.radio_button_4.pack(anchor=W) 
      self.answer_button = Button(self, text="Answer") 
      self.answer_button.grid(row=5, column=1, columnspan=2) 

ответ

3

переменной, которую нужно дать RadioButton должен быть Tkinters IntVar(). Таким образом, вместо:

self.answer = 0 

положить:

self.answer = IntVar()   #We declare it like this 
self.answer.set(-1)    #If you wont none of your radionbuttons to be selected, give the IntVar value that isn't set in any Radiobutton. 

Чтобы получить значение self.answer, просто позвоните self.answer.get()

Смежные вопросы