Tkinter frame boyutu ayarlanmıyor

Merhaba, aşşagıdaki kodda frame boyutunu ayarlayamıyorum resimde göreceginiz siyah alanın boyutu degişmiyor width=300 height=200 şeklinde yapıyorum ama degişen birşey yok yardımcı olursanız sevinirim.

# Multi-frame tkinter application v2.3
import tkinter as tk

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

    def switch_frame(self, frame_class):
        """Destroys current frame and replaces it with a new one."""
        new_frame = frame_class(self)
        if self._frame is not None:
            self._frame.destroy()
        self._frame = new_frame
        self._frame.pack()
        self._frame.config(height=300)

class StartPage(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master,bg="black")
        tk.Label(self, text="This is the start page").pack(side="top", fill="x", pady=10)
        tk.Button(self, text="Open page one",
                  command=lambda: master.switch_frame(PageOne)).pack()
        tk.Button(self, text="Open page two",
                  command=lambda: master.switch_frame(PageTwo)).pack()

class PageOne(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        tk.Label(self, text="This is page one").pack(side="top", fill="x", pady=10)
        tk.Button(self, text="Return to start page",
                  command=lambda: master.switch_frame(StartPage)).pack()

class PageTwo(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        tk.Label(self, text="This is page two").pack(side="top", fill="x", pady=10)
        tk.Button(self, text="Return to start page",
                  command=lambda: master.switch_frame(StartPage)).pack()

if __name__ == "__main__":
    app = SampleApp()
    app.geometry("600x600")
    app.mainloop()

Merhabalar.

SampleApp sınıfının switch_frame metodunda StartPage sınıfından bir örnek oluşturduktan sonra örneğin pack_propagate fonksiyonunu, fonksiyona 0'ı veya False'u argüman olarak vererek çağırmalısınız.

    def switch_frame(self, frame_class):
        """Destroys current frame and replaces it with a new one."""
        new_frame = frame_class(self)
        if self._frame is not None:
            self._frame.destroy()
        self._frame = new_frame
        if isinstance(self._frame, StartPage):
            self._frame.pack_propagate(0)
            self._frame.config(height=300, width=300)
        self._frame.pack()
1 Beğeni