0
ラジオボタンを選択すると、2つのオプションが同じ要素/値を持つ場合、両方が選択されます。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つのラジオボタンのみが選択されるようにするにはどうすればよいですか?