2017-03-12 11 views
1

複数のフレームがあるときに、ウィンドウとラベルのジオメトリを変更するにはどうすればよいですか?TKinterでウィンドウを編集

フレームがなければ、私のコードは次のようになります。

nGui = Tk() 
nGui.geometry("500x500") 

しかし、私は(要求されたとして私の全体のコード「)nGui」のコードの下にあるものがわからないんです。したがって、これを実行すると、非常に小さなウィンドウとして表示されます。私はそれが 'tk.Tk'かもしれないと思うが、私がそれを編集しようとしたとき、それはちょうど新しいウィンドウを作った。

class DietBuddy(tk.Tk): 

    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 


     # the container is where we'll stack a bunch of frames 
     # on top of each other, then the one we want visible 
     # will be raised above the others 
     container = tk.Frame(self) 
     container.pack(side="top", fill="both", expand=True) 
     container.grid_rowconfigure(0, weight=1) 
     container.grid_columnconfigure(0, weight=1) 

     self.frames = {} 
     for F in (StartPage, PageOne, Diet_Finder): 
      page_name = F.__name__ 
      frame = F(parent=container, controller=self) 
      self.frames[page_name] = frame 

      # put all of the pages in the same location; 
      # the one on the top of the stacking order 
      # will be the one that is visible. 
      frame.grid(row=0, column=0, sticky="nsew") 

     self.show_frame("StartPage") 

    def show_frame(self, page_name): 
     '''Show a frame for the given page name''' 
     frame = self.frames[page_name] 
     frame.tkraise() 


class StartPage(tk.Frame): 

    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     self.controller = controller 
     label = tk.Label(self, text="HazaTea Productions", font=TITLE_FONT) 
     label.place(relx=.5, rely=.5, anchor="center") 

     time.sleep(2) 
     button = tk.Button(self, text="Continue", 
          command=lambda: controller.show_frame("PageOne")) 
     button.place(relx=.5, rely=.6, anchor="center") 


class PageOne(tk.Frame): 

    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     self.controller = controller 
     label = tk.Label(self, text="This is page 1", font=TITLE_FONT) 
     label.pack(side="top", fill="x", pady=10) 
     button = tk.Button(self, text="Find Diet", 
         command=lambda: controller.show_frame("Diet_Finder")) 
     button.pack() 


class Diet_Finder(tk.Frame): 

    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     self.controller = controller 
     label = tk.Label(self, text="Diet Finder", font=TITLE_FONT) 
     label.pack(side="top", fill="x", pady=10) 


     button = tk.Button(self, text="Find my Diet!", 
         command=lambda: controller.show_frame("StartPage")) 
     button.pack() 


if __name__ == "__main__": 
    app = DietBuddy() 
    app.mainloop() 

ありがとうございます - これが間違った場所にある場合は、私にこのサイトを初めて知っていると教えてください。

+0

あなたはそれが可能に私たちは、なぜあなたはそれを再作成することができない問題 – abccd

+0

を再作成することができるようにするために作られた場合、それは素晴らしいことですか? –

答えて

1

DietBuddyサブクラスTk。だから、DietBuddyインスタンスに対してgeometryメソッドを呼び出します。

if __name__ == "__main__": 
    app = DietBuddy() 
    app.geometry('500x500') # <--- 
    app.mainloop() 
関連する問題