Мой код уничтожает некоторые виджеты, а затем создает новые виджеты, а затем в конце приложения кнопка спрашивает, хочу ли я перейти к началу. Эта кнопка вызовет конструктор классов, который повторно инициализирует каждую переменную и начнет повторно рисовать те же старые виджеты. Проблема в том, что виджеты, даже если они новы, сохраняют свои последние значения перед уничтожением.Виджет Tkinter сохраняет свое состояние после разрушения и перестройки
def mapping(self):
sort_frame = Frame(self.top_frame)
sort_frame.grid(row=0,column=1)
sort = False
Checkbutton(sort_frame, text="Sort: ", variable=sort, onvalue=True, offvalue=False,command=lambda fr=sort_option_frame, nx = next_button : self.enable_sort(fr,nx)).pack(side=TOP)
next_button = Button(self.bottom_frame, text='Next',borderwidth=1, command=self.output_select)
next_button.pack(side = RIGHT)
def output_select(self):
for widget in self.top_frame.winfo_children():
widget.destroy()
for widget in self.bottom_frame.winfo_children():
widget.destroy()
#new widgets drawing
Button(self.bottom_frame, text='New file',borderwidth=1, command=self.restart).pack(side = TOP)
#This UI resets the application for a new cycle
def restart(self):
for widget in self.top_frame.winfo_children():
widget.destroy()
for widget in self.bottom_frame.winfo_children():
widget.destroy()
self.__init__(self.root)
В этом коде, например, Checkbutton картографирования сохранит свои последние значения, когда отображение перезвонил в новом цикле.
Я хочу, чтобы контрольная кнопка была новой, как если бы она была впервые создана.
Спасибо за вашу помощь
Привет, Если переменная является кортежем, что мне делать? –
@TarikMokafih: вы не можете связать кортеж с помощью «Checkbutton» с помощью атрибута 'variable'. Он должен быть одним из специальных объектов переменной tkinter. –