2016-02-11 79 views
2

這裏是我的代碼我該如何調整我的tkinter程序的窗口大小?

import tkinter as tk 
from tkinter import ttk 
class gui_programming(tk.Tk): 
    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 
     container = tk.Frame(self) 
     container.pack(side="left", fill="both", expand=True) 
     container.grid_rowconfigure(0, weight=1) 
     container.grid_columnconfigure(0, weight=1) 
     self.frames = {} 
     for F in (StartPage, Page1): 
      frame = F(container, self) 
      self.frames[F] = frame 
      frame.grid(row=0, column=0, sticky="nsew") 
     self.show_frame(StartPage) 
    def show_frame(self, cont): 
     frame = self.frames[cont] 
     frame.tkraise() 
##number 1 
class StartPage(tk.Frame): 
    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     c = tk.Canvas(self, bg="red", width=75, height=100) 
     c.place(x=0, y=0) 
     butt0 = ttk.Button(self, text="Next.", command=lambda:controller.show_frame(Page1)) 
     controller.bind("1", lambda x: controller.show_frame(StartPage)) 
     controller.bind("2", lambda x: controller.show_frame(Page1)) 
     controller.bind("3", lambda x: controller.show_frame(Page2)) 
class Page1(tk.Frame): 
    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     lambda x: gui_programming().geometry("75x100+10+10") 
     c = tk.Canvas(self, bg="blue", width=300, height=200) 
     c.place(x=0, y=0) 

app = gui_programming() 
app.geometry("75x100+10+10") 
app.mainloop() 

這樣一個例子,我應該如何去改變每一個類從爲75x100出現在別的東西的窗口,是有一個命令來調整窗口的大小?我希望能夠爲每個班級調整大小。

+0

最好的做法是使用'pack'或'grid',而不是'地方'。當你這樣做時,窗口自然會增長(或縮小)以適應其所有內容,並且不必擔心調整任何內容。然後,您可以通過更改內部畫布的大小來輕鬆控制框架的大小。 –

回答

0

您已經調整應用窗口從默認與

app.geometry("75x100+10+10") 

重複此不同尺寸。

+0

我的意圖是讓窗口在每個類的內部進行更改,因爲應用程序設置在類的下面,因此無法調用它,所以我不能重複.geometry,因爲應用程序尚未定義 – dragonlife

0

我建議總是使用內部__init__方法幾何 如變量

w=500 
h=500 
master.geometry(('{}x{}').format(w,h)) 
0

呼叫geometry

class gui_programming(tk.Tk): 
    def __init__(self, *args, **kwargs): 
     ... 
     self.geometry("75x100+10+10")