Python - Как переключать фреймы в окне Tkinter - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу переключать кадры в окне Tkinter, но предыдущий кадр всегда остается видимым в фоновом режиме.

У меня есть такой код:

from tkinter import *

class frame(Frame):

    def __init__(self,display):
        Frame.__init__(self,display)
        l = Label(self,text="frame1")
        l.pack()

class frame2(Frame):

    def __init__(self,display):
        Frame.__init__(self,display)
        l = Label(self,text="frame2")
        l.pack()   

class test(Tk):

    def __init__(self):
        Tk.__init__(self)
        f = frame(self)
        f.grid(row=0)
        f2 = frame2(self)
        f2.grid(row=0)
        f.tkraise()

t = test()
t.mainloop()

Это работает, если макетиз двух кадров одинаковы, но если я добавлю другую метку во второй кадр, он все равно будет виден в фоновом режиме.Есть ли способ переключения кадров, чтобы были видны только элементы из приподнятой рамки?

1 Ответ

0 голосов
/ 18 февраля 2019

В соответствии с просьбой, это то, что я использовал для решения моей проблемы:

from tkinter import *

class frame(Frame):

    def __init__(self,display):
        Frame.__init__(self,display)
        l = Label(self,text="frame1")
        l.pack()

class frame2(Frame):

    def __init__(self,display):
        Frame.__init__(self,display)
        l = Label(self,text="frame2")
        l.pack()   

class test(Tk):

    def __init__(self):
        Tk.__init__(self)
        f2 = frame2(self)
        f2.grid(row=0)

        #To raise the first frame, I used the following
        frame2.grid_remove()
        f = frame(self)
        f.grid(row=0)

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