当前位置: 首页 > 知识库问答 >
问题:

Radiobuttons从for循环tkinter中的值中选择多个选项

姚阳德
2023-03-14

选择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”)...)我的程序按照我想要的方式工作。只有当元素相同时,它才不起作用。我试图追加到如上所示的列表中,但这并没有解决我的错误。

共有1个答案

柳胜
2023-03-14

radiobutton的全部意义在于,每一个都有不同的值。它们不是用来处理一个集合中具有相同值的两个radiobuttons的。

 类似资料:
  • 问题内容: 我有一个可变长度的列表,并想为列表中的每个条目创建一个复选框(使用python TKinter)(每个条目对应于一台机器,应使用该复选框打开或关闭->更改字典中的值) 。 (例如,可以是任意长度) 现在相关代码: 这段代码产生了4个复选框,但它们都被打勾或未打勾,并且dict中的值不变。怎么解决?(我认为这是行不通的,但是如何使这一变量可变?) 问题答案: 传递给每个检查按钮的“变量”

  • 问题内容: 尝试在angularjs中选择关于对象值的多个选项 这是一个代码: 和html jsfiddle上的(非)工作示例 http://jsfiddle.net/andrejkaurin/h9fgK/ 问题答案: 您尝试使用选择倍数(如复选框列表),这有点奇怪。多选输出一个数组。您不能将ng- model放在这样的选项标签上,而是放在选择本身上。因此,由于select将输出值数组,因此您需要

  • 问题内容: 所以这是我的设置,我有2个具有以下(简化)模式的旧表和新表 我正在寻找一种SQL查询,该查询返回以下内容,但在1个查询中包含4列,而不是每个2列包含2个查询 因此,我理想的结果集将包含4列: 谢谢! 问题答案: 您是否尝试过JOIN语句:

  • 问题内容: 我想根据URL字符串选择一些ID,但对于我的代码,它仅显示第一个。如果我写手册的ID是伟大的。 我有这样的网址http://www.mydomain.com/myfile.php?theurl=1,2,3,4,5(ids) 现在在myfile.php中,我有sql连接,并且: 如果我使用这个: 我得到正确的结果。现在,如果我使用下面的代码,它将无法正常工作: 有什么建议? 问题答案:

  • 我正在尝试从一个select表单中获取一个时间值。我在代码中看不到任何错误,尝试更改所有类名和变量,但值仍然没有被get select。(提交表单后我看不到所选的值) 代码添加如下:

  • 问题内容: 我需要从3个表中获得不同的值。 当我执行此代码时: 我收到一条错误消息,提示我的“城市”一栏不明确。 我也尝试过这个: 有了这段代码,我的表什么都收不到。 让我向您展示我正在尝试做的事的示例: 我需要得到这样的结果 城市的顺序对我来说并不重要,我只需要拥有所有城市,每个城市应该只有一个代表。 任何的想法?我当时想在中使用,但没有连接,所以我不能使用它。 问题答案: 该关键字将返回结果列