Я хочу использовать забыл() в последнем активном кадре tkinter. Моя идея состоит в том, чтобы использовать оператор for для проверки всех доступных кадров, которые сохраняются в списке, например:
frameList = ["probabilityFrame","itemFrame","welcomeFrame","newsFrame"]
Я хочу использовать grid_forget() для последнего активного кадра при переключении на новый.
Вместо того, чтобы делать что-то вроде моего текущего решения, которое работает, но не является хорошей практикой:
root = Tk()
root.title('title')
welcomeFrame = Frame(root)
itemFrame = Frame(root)
...
if (lastFrame == "probabilityFrame"):
probabilityFrame.grid_forget()
elif (lastFrame = = "itemFrame"):
itemFrame.grid_forget()
elif (lastFrame = = "welcomeFrame"):
welcomeFrame.grid_forget()
elif (lastFrame = = "newsFrame"):
newsFrame.grid_forget()
Я хотел бы сделать что-то вроде этого:
for elemenst in frameList:
if (lastFrame == element):
>>>elements<<<.grid_forget()
ex probabilityFrame.grid_forget()
Но это не работает, потому что elements не является правильным объектом, даже если он содержит «probabilityFrame».





Самое простое решение — хранить кадры, а не строки.
frameList = []
a_frame = tk.Frame(...)
frameList.append(a_frame)
...
another_frame = tk.Frame(...)
frameList.append(another_frame)
...
frameList[-1].grid_forget()