Переменные флажков Tkinter не обновляются - PullRequest
0 голосов
/ 19 июня 2020

Я создал массив флажков в моем приложении 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()

Мне нужно вручную установить переменную внутри функции, чтобы она начала работать, что я здесь делаю не так? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...