【问题标题】:How to get the state of a checkbox certain that was auto generated from a list如何获取某个从列表自动生成的复选框的状态
【发布时间】:2018-02-19 15:15:01
【问题描述】:

代码如下:

c = len(clientlist)
for x in range(1, c):
        Checkbutton(root2, text=clientlist[x], onvalue=1).grid(row=row, column=0, sticky=W)

What it looks like

现在,我想知道的是如何检查是否选中了任何复选框。因为我想不出一种方法来为检查按钮提供动态变量。 (例如:checkbox1、checkbox2等)

基本上我只需要找到一种方法来从每个生成的复选框中获取状态 - 我无法弄清楚。

【问题讨论】:

  • 你应该明确你正在使用什么库(Checkbutton 类在哪里?)

标签: python list checkbox tkinter generated


【解决方案1】:

我假设你使用 Tkinter。试试这个:

import Tkinter as tk

chkbutton_state = {}

for chk in checkbuttons:
    var = tk.IntVar() 
    btn = Checkbutton(root2, text=chk, onvalue=1, variable=var)
    chkbutton_state[chk] = var

# render
for checkbutton in checkbuttons:
    checkbutton.grid(row=row, column=0, sticky=W)

# then somewhere else, read the state ect
print checkbutton_state
print checkbutton_state['c1'] 

如果您打算跳过列表的第一个元素,因为代码似乎建议在第一行之后添加:

checkbuttons.pop(0)

【讨论】:

  • 感谢您这么快回答我的问题,尽管我的问题可能有点含糊。我是这个网站的新手。但它似乎向我抛出了这个错误:AttributeError: 'Checkbutton' object has no attribute 'state'
  • 抱歉,我把图书馆搞混了。现在编辑我的答案 - Tkinter 更详细
  • 再次感谢,但它仍然给我带来另一个错误:KeyError: 'c1'
  • 好的,所以注释掉最后一行并检查上面打印命令输出中的键是什么 - 它打印整个字典。我不确切知道您的 checkbuttons 变量中有什么。请以此为指导
猜你喜欢
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多