选择Radiobutton时,如果其中两个选项具有相同的元素/值,则选择它们。
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”)...),我的程序按照我想要的方式工作。只是当元素相同而不起作用时。我尝试附加到如上所示的列表,但这并没有解决我的错误。
我是如何制作的,即使元素/值相同,也只选择一个Radiobutton?
答案 0 :(得分:1)
无线电按钮的重点是每个都有不同的值。它们的设计不适用于具有相同值的集合中的两个单选按钮。