Содержимое переменной для использования в качестве .grid_forget () - PullRequest
0 голосов
/ 10 июля 2019

Я хочу использовать Forgot () в последнем активном кадре 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()

Но это не работает, потому что элементы - это не тот объект, даже если он содержит "элемент вероятности"

1 Ответ

0 голосов
/ 10 июля 2019

Самое простое решение - хранить кадры, а не строки.

frameList = []

a_frame = tk.Frame(...)
frameList.append(a_frame)
...
another_frame = tk.Frame(...)
frameList.append(another_frame)
...
frameList[-1].grid_forget()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...