2014-07-13 13 views
0

這是我的代碼放在帆布面:不能與其他要素端使用網格管理

class Main(tk.Frame): 

    w = 300 
    h = 300 

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

     self.parent = parent 

     self.l1 = tk.Label(self, text="Iterations").grid(column=0,row=0) 
     self.l2 = tk.Label(self, text="angle").grid(column=0,row=1) 
     self.l3 = tk.Label(self, text="axiom").grid(column=0,row=2) 
     self.l4 = tk.Label(self, text="rule1").grid(column=0,row=3) 
     self.l5 = tk.Label(self, text="rule2").grid(column=0, row=4) 
     self.l6 = tk.Label(self, text="constants").grid(column=0, row=5) 

     self.e1 = tk.Entry(self, text="Iterations").grid(column=1,row=0) 
     self.e2 = tk.Entry(self, text="angle").grid(column=1,row=1) 
     self.e3 = tk.Entry(self, text="axiom").grid(column=1,row=2) 
     self.e4 = tk.Entry(self, text="rule1").grid(column=1,row=3) 
     self.e5 = tk.Entry(self, text="rule2").grid(column=1, row=4) 
     self.e6 = tk.Entry(self, text="constants").grid(column=1, row=5) 

     self.cv = tk.Canvas(width=self.w, height=self.h, bg='white') 
     self.cv.grid(column=2, rowspan=5) 

     # self.render_image() 
     self.grid() 

我想通過我的一邊輸入框和帆布托架側,但標籤和輸入框繪製如下由於某種原因的畫布。我明白了;

Imgur

我怎麼能告訴他們並肩呢?

+0

順便說一句:使用'e6 = tk.Entry(...)。grid(...)'在'e6'中得到'grid()'的結果,但'grid()'總是返回'None'。做'e6 = tk.Entry(...)'和'e6.grid(...)' – furas

+0

你忘記了'Canvas'的設置父項。其他元素屬於'self''Label(self,...)','Entry(self,...)'。試試'Canvas(self,...)' – furas

回答

2

您還沒有指定的行中爲您Canvas

self.cv.grid(column=2, rowspan=5) 

只需更新這包括頂行:

self.cv.grid(column=2, rowspan=5, row=0) 

而且rowspan應該有可能是6不是5