Как менять Frame в tkinter

from tkinter import *

class MyApp(Tk):
    def __init__(self):
        Tk.__init__(self)
        self._frame = None
        self.switch_frame(StartPage)

    def switch_frame(self, frame_class):
        if self._frame is not None:
            self._frame.destroy()
        self._frame = frame_class(self)
        self._frame.pack()

class StartPage(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        Label(self, text="This is the start page").pack(side="top")
        Button(self, text="Open next page",
                  command=lambda: master.switch_frame(NextPage)).pack()

class NextPage(Frame):
    def __init__(self, master):
        usertext = StringVar()
        Frame.__init__(self, master)
        Label(master, text="""Какой то текст""").pack(side="top", fill="x", pady=10)
        Entry(master, textvariable=usertext).pack()
        Button(master, text="Button", command=lambda: print(usertext.get())).pack()

        Entry.grid(master, row=0, column=0)
        Button.grid(master, row=0, column=1)
app = MyApp()
app.mainloop()

Данный код переносит на новую страницу, а то есть на nextpage, но при этом, в консоли постоянно выдает такую ошибку:

Traceback (most recent call last):
  File "D:\python 3.8\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "C:/MemoryPuzzle/test2.py", line 20, in <lambda>
    command=lambda: master.switch_frame(NextPage)).pack()
  File "C:/MemoryPuzzle/test2.py", line 12, in switch_frame
    self._frame = frame_class(self)
  File "C:/MemoryPuzzle/test2.py", line 30, in __init__
    Entry.grid(master, row=0, column=0)
  File "D:\python 3.8\lib\tkinter\__init__.py", line 2484, in grid_configure
    self.tk.call(
_tkinter.TclError: can't manage ".": it's a top-level window

Ответы (0 шт):