【发布时间】: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