2017-05-03 1 views
0

라디오 버튼을 선택할 때 두 옵션이 동일한 요소/값을 갖고 있으면 둘 다 선택됩니다. for 루프 tkinter에서 값에서 하나 이상의 옵션을 선택하는 라디오 버튼

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") ...) 내 프로그램은 내가 그것을 원한 방법했다. 요소가 동일하지 않아 작동하지 않는 경우입니다. 위의 그림과 같이 목록에 추가하려고했으나 오류가 해결되지 않았습니다.

요소/값이 같더라도 단 하나의 라디오 버튼 만 선택되도록하려면 어떻게해야합니까?

답변

1

라디오 버튼의 전체적인 점은 각각 다른 값을 갖는다는 것입니다. 같은 값을 가진 두 개의 라디오 버튼으로 작동하도록 설계되지 않았습니다.

관련 문제