初始化单选按钮Tkinter

时间:2016-06-02 18:10:25

标签: python tkinter radio-button

我正在尝试使用四个选项为问题创建选择菜单。我正在实例化四个单选按钮,每个选项一个。出于某种原因,当表单出现时,已经选择了最后三个。单击其中一个时,仅选择该按钮,其他按钮将被取消选中。我希望如此,表格的原始版本没有选中它们。

            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)

1 个答案:

答案 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()