Я создал массив флажков в моем приложении tkinter, который добавляется к каждому, когда создается сюжет, чтобы скрыть / показать каждый из них. Тем не менее, график отлично скрывается, но никогда не отображается при повторном нажатии флажка. Я предполагаю, что это потому, что переменная отказывается обновляться:
self.vararray.append(tk.IntVar(value=0))
cntr = self.plot_counter
c = tk.Checkbutton(self.checkbox_frame,selectcolor="#F194EA", text=tail[:-4], variable=self.vararray[-1],command= lambda var=cntr: self.hide_plot(filename, visible = self.vararray[cntr]))
c.pack(side=tk.LEFT)
c.var = self.vararray[-1]
self.btnarray.append(c)
self.plot_counter+=1
Я просмотрел другие ответы, и я даже добавил переменные и флажки в массив, но безрезультатно . Соответствующий код для сокрытия сюжета находится здесь:
def hide_plot(self, filename, visible):
if(visible.get() == 0):
for i in range(0, len(self.plotarray)):
if self.filearray[i] == filename:
for j in range(0, len(self.plotarray[i])):
self.plotarray[i][j].set_visible(False)
#visible.set(1)
else:
for i in range(0, len(self.plotarray)):
if self.filearray[i] == filename:
for j in range(0, len(self.plotarray[i])):
self.plotarray[i][j].set_visible(True)
#visible.set(0)
self.fig.canvas.draw()
Мне нужно вручную установить переменную внутри функции, чтобы она начала работать, что я здесь делаю не так? Спасибо!