【问题标题】:Radiobuttons selecting more than one option from value in for loop tkinter单选按钮从 for loop tkinter 中的值中选择多个选项
【发布时间】:2017-05-03 19:33:35
【问题描述】:

选择单选按钮时,如果两个选项具有相同的元素/值,则它们都被选中。

from tkinter import*

class CourseInfo:
    def __init__(self, subject):
        self.subjectName = subject
        self.selectedselected = "0" #default setting

class SubjectGUI:
    def __init__(self, parent):

        #setting up list for subject objects
        self.subjectInfo = [CourseInfo("English"), CourseInfo("English"), CourseInfo("Math"), CourseInfo("Math")]

        #set up for subject radio buttons
        self.subjectChoice = StringVar() #instance for StringVar created
        self.subjectChoice.set("*") #sets the initial selection

        self.rb_info = []

        for subject in self.subjectInfo: #for loop outputs show info
            self.show_rb = Radiobutton(parent, variable = self.subjectChoice, value = subject.subjectName, text = subject.subjectName, command = self.select_subject)
            self.rb_info.append(self.subjectChoice)
            self.show_rb.pack()

        self.selection_label = Label(text = "You have selected: ")
        self.selection_label.pack()

    def select_subject(self):

        for i in range(len(self.subjectInfo)):
            subject = self.rb_info[i].get()
            self.subjectInfo[i].selectedselected = subject


        self.selection_label.configure(text = "You have selected: " + subject)


# main routine
if __name__ == "__main__":
    root = Tk()
    subjectChoice = SubjectGUI(root)
    root.mainloop()

我做到了,所以我添加到列表中的元素是不同的(例如 CourseInfo("English1")、CourseInfo("English2")...),我的程序按照我想要的方式运行。只有当元素相同时它才不起作用。我尝试附加到如上所示的列表,但这并没有解决我的错误。

如何做到即使元素/值相同,也只选择一个单选按钮?

【问题讨论】:

    标签: python tkinter radio-button


    【解决方案1】:

    单选按钮的全部意义在于每个单选按钮都有不同的值。它们不适用于一组具有相同值的两个单选按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2014-08-11
      • 1970-01-01
      • 2020-11-29
      • 2013-02-24
      相关资源
      最近更新 更多