从动态检查按钮获取价值?

问题描述

我正在构建第一个动态创建的复选按钮的GUI:

for i in range(7,spaltendf):
    
    globals()['i_{}'.format(i)] = Intvar()
    
    globals()['Check_{}'.format(i)] = Checkbutton(root,text=df [i][zeilendf],variable = 'i_{}'.format(i)).grid(row = r,column =4)
    #print('i_{}'.format(i))
    
    r = r +1

现在,用户可以“检查”按钮,并且我想在数据库中实现答案(选中时大于1,未选中0)

但是当我尝试我的代码时,即使我选中了按钮,它也只给我0作为答案。有人可以帮我吗?

这是我的代码

def myClick():

    for z in range(7,spaltendf):
        globals()['Eingabe_{}'.format(z)]=int(globals()['i_{}'.format(z)].get())
        print(globals()['Eingabe_{}'.format(z)])

解决方法

第三行CheckButton内有variable = 'i_{}'.format(i)
这样会将variable设置为字符串,而是尝试使用创建IntVar时使用的相同逻辑:
variable = globals()['i_{}'.format(i)]