【问题标题】:Initializing Radio Buttons Tkinter初始化单选按钮 Tkinter
【发布时间】:2016-10-02 15:02:22
【问题描述】:

我正在尝试为具有四个选项的问题创建一个选择菜单。我正在实例化四个单选按钮,每个选项一个。由于某种原因,当表格出现时,最后三个已经被选中。当您单击一个时,仅选择该按钮,而其他按钮则被取消选择。我想要它,所以原始版本的表单都没有被选中。

            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)

【问题讨论】:

    标签: python tkinter radio-button


    【解决方案1】:

    您需要提供给 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()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 2023-01-11
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      相关资源
      最近更新 更多