Я смотрю на свою программу и знаю, что могу заставить ее работать с чем-то вроде «varName = StringVar», а затем назначить другое значение varName. но я не могу заставить его работать.
так общая проблема: я создаю неопределенное количество фреймов меток, каждый с меткой и двумя радиокнопками, одним нажатием кнопки. Этот код, очевидно (как указано в первых строках) использует одну и ту же переменную [в моем случае «zvar»] ... поэтому все кнопки изменятся, если я изменю одну кнопку. так что я знаю, где ошибка, но не могу заставить ее работать.
вот код класса:
class ac_radiobtn(ttk.Radiobutton):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.configure(command= lambda: self.callback())
def callback(self):
if zvar.get()==1:
for heli in HELI2:
lfzconfig[(self.master.cget("text"))]['status'] = '1'
if heli.cget("text").strip()==self.master.cget("text"):
#indexnumber bekommen und das ganze in HELI1 auch machen
heli.configure(style='styleLFZ.TLabel')
for heli1 in HELI1:
if heli1.cget("text").strip()==self.master.cget("text"):
heli1.configure(style='styleLFZ.TLabel')
elif zvar.get()==2:
#label stle für das label in LFZ und auf seite 1 in die jeweilige Farbe setzen (hier 'styleKaputt.TLabel'
lfzconfig[(self.master.cget("text"))]['status'] = '2'
for heli in HELI2:
if heli.cget("text").strip()==self.master.cget("text"):
heli.configure(style='styleKaputt.TLabel')
for heli1 in HELI1:
if heli1.cget("text").strip()==self.master.cget("text"):
heli1.configure(style='styleKaputt.TLabel')
else:
pass
with open(lfz_ini,"w") as configfile:
lfzconfig.write(configfile)
и это часть, из которой называется класс:
def lfz_status():
LLabelFrame2 = ttk.LabelFrame(frame2, width=250, height=100, text=heli)
LLabel2 = ttk.Label(LLabelFrame2, text=ltext, style='styleLFZ.TLabel', image=img, compound=CENTER))
LRadiobutton1 = ac_radiobtn(LLabelFrame2, text="Einsatzbereit", variable=zvar, value=1)
LRadiobutton2 = ac_radiobtn(LLabelFrame2, text="Nicht Einsatzbereit", variable=zvar, value=2)
[...]
я пропустил остальную часть кода Поскольку проблема заключается в переменной части, насколько я знаю (или предполагаю).
, как упоминалось ранее, я предполагаю, что знаю, как смягчить эту проблему, но не могу заставить ее работать. так что мне действительно нужен "очевидный" ответ.
(и да, кодировка выполнена в стиле кувалды и не обязательно хороша: D)