2015-08-26 43 views
0

在第11行我試圖用網格(),但它一直給我 「wm_grid()得到了一個意想不到的關鍵字參數‘行’」的錯誤 任何人都可以看看這個?Tkinter的wm_grid()得到了一個意想不到的關鍵字參數「行」

import tkinter as tk 


class MainPage(tk.Tk): 

    def __init__(self, *args, **kwargs): 

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

     container = tk.Frame(self) 
     container.pack(side="top", fill="both", expand=True) 
     container.grid_rowconfigure(0, weight=1) 
     container.grid_columnconfigure(0, weight=1) 

     # pass frames as dictionaries 
     self.frames = {} 

     frame = StartPage(container, self) 
     self.frames[StartPage] = frame 
# problem here**************************************************** 
     frame.grid(row=1, column=1) 
# problem here****************************************************   
     self.show_frame(StartPage) 

    def show_frame(self, controller): 
     frame = self.frames[controller] 
     frame.tkraise() 


class StartPage(tk.Tk): 

    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     label = tk.Label(self, text="StartPage") 
     label.pack(pady=10, padx=10) 

root = MainPage() 
root.mainloop() 
+0

什麼是你想創建? –

+0

如果有人想知道爲什麼我們得到這麼多tkinter問題,幾乎相同的代碼,它來自這裏:http://pythonprogramming.net/change-show-new-frame-tkinter/ –

回答

1

我想這個問題你來,因爲你是從tk.Tk繼承StartPage,你不能在這種情況下使用row/column關鍵字參數爲grid

但我相信你確實不打算把它作爲tk.Tk的子類,因爲你好像試圖在裏面初始化tk.Frame。我相信,在你的情況下,解決將是從tk.Frame繼承類,而不是作爲 -

class StartPage(tk.Frame): 
+0

謝謝,這真的幫助 – Sheldor

相關問題