我正在尝试使用四个选项为问题创建选择菜单。我正在实例化四个单选按钮,每个选项一个。出于某种原因,当表单出现时,已经选择了最后三个。单击其中一个时,仅选择该按钮,其他按钮将被取消选中。我希望如此,表格的原始版本没有选中它们。
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)
答案 0 :(得分:3)
您需要提供给Radiobutton的变量应该是Tkinters IntVar()
。
所以而不是:
self.answer = 0
放:
self.answer = IntVar() #We declare it like this
self.answer.set(-1) #If you want none of your radionbuttons to be selected, give the IntVar value that isn't set in any Radiobutton.
要获得self.answer
的值,只需致电self.answer.get()