1: добавьте value='NA'
, когда вы начинаете StringVar
.
for (key, value) in Heads.items():
strVar = StringVar(value='NA')
...
2: Учтите это:
head_list=[]
...
parameters=[strvar.get() for strvar in head_list if strvar.get() != 'NA']
...
Нет выбора, когда ваше понимание списка parameters
сделано. Вы должны сделать это после того, как кнопки были нажаты, не раньше. Вы можете сделать это, добавив команду к вашему Checkbutton
или отследить изменения на вашем StringVar
. Например:
def get_parameters():
global parameters
parameters=[strvar.get() for strvar in head_list if strvar.get() != 'NA']
...
for (key, value) in Heads.items():
...
cb = Checkbutton(frm, text=key, variable=strVar, onvalue=value, offvalue='NA',
command=get_parameters)
...