当前位置: 首页 > 面试题库 >

如何在python tkinter中从for循环中的列表创建多个复选框

徐柏
2023-03-14
问题内容

我有一个可变长度的列表,并想为列表中的每个条目创建一个复选框(使用python
TKinter)(每个条目对应于一台机器,应使用该复选框打开或关闭->更改字典中的值) 。

print enable
{'ID1050': 0, 'ID1106': 0, 'ID1104': 0, 'ID1102': 0}

(例如,可以是任意长度)

现在相关代码:

for machine in enable:
    l = Checkbutton(self.root, text=machine, variable=enable[machine])
    l.pack()
self.root.mainloop()

这段代码产生了4个复选框,但它们都被打勾或未打勾,并且enabledict中的值不变。怎么解决?(我认为这l是行不通的,但是如何使这一变量可变?)


问题答案:

传递给每个检查按钮的“变量”必须是Tkinter变量的一个实例-照原样,只是传递值“ 0”,这会导致行为不端。

您可以在相同的for循环上创建Tkinter.Variable实例,并创建复选按钮-只需将代码更改为:

for machine in enable:
    enable[machine] = Variable()
    l = Checkbutton(self.root, text=machine, variable=enable[machine])
    l.pack()

self.root.mainloop()

然后,您可以使用中的get方法 检查每个复选框的状态enable["ID1050"].get()



 类似资料:
  • 问题内容: 我想从Python中的常量列表创建lambda对象列表;例如: 但是,当我运行它们时,这将创建一个lambda对象列表: 我希望它会打印 而是打印: 似乎所有lambda都被赋予了错误的参数。我做错了什么,有办法解决吗?我认为我使用的是Python 2.4。 编辑:更多尝试的事情,例如这样: 打印从1到25的期望平方,然后使用之前的print语句: 仍然给了我全部。现有的lambda对

  • 问题内容: 我有两个清单如下 我想提取物项从当他们在: 如何将两个循环写为单行列表理解? 问题答案: 应该这样做:

  • 选择Radiobutton时,如果其中两个选项具有相同的元素/值,则两个选项都被选中。 我这样做了,所以我附加到我的列表中的元素是不同的(如CourseInfo(“English1”)、CourseInfo(“English2”)...)我的程序按照我想要的方式工作。只有当元素相同时,它才不起作用。我试图追加到如上所示的列表中,但这并没有解决我的错误。

  • 有没有办法只使用一个具有多个整数的 for 循环?目前我只编写了 int num0 的代码。但是有没有办法将 num1,num2,num3 的其余部分放在同一个代码中?我之所以在这里要求这样做,是因为我作为程序员没有经验,我想知道你们是否知道是否有解决方案。(请原谅我的语法不好)

  • 我正在尝试将POJO的jackson JSON字符串转换为JSON文件以导入MySQL。 我遇到的问题是,即使我在控制台中返回了JSON字符串,并且。json文件创建后,MySQL workbench抛出一个未处理的错误异常:bool()类型的对象没有长度 作为一个json文件,行为“true”。 如果我做文件被正确导入,但数据库中没有数据,如果被视为json,则只有一行。 我的POJO

  • 我有一个两个项目的列表,每个项目是一个文本字符串。我想围绕这两个项目循环,如果一个单词不在一组单词中,则基本上删除它。但是,下面的代码将所有单词放在一起,而不是创建两个单独的项。我希望我的更新列表包含两个项目,每个原始项目对应一个im更新: