2013-05-15 40 views
0

所以我有一個程序應該把一個函數作爲輸入並將其繪製在Tkinter畫布上。元組索引超出範圍Tkinter

def draw(self): 
    self.canvas.delete(ALL) 
    for n, i in enumerate(self.sav): 
     self.function, colour = self.sav_func[n] 
     i = self.p1(i) 
     i = self.p2(i, self.function, colour) 
     if i != [0]: 
      try: 
       self.canvas.create_line(i, fill = colour) 
      except TclError as err: 
       tkMessageBox.showerror(TclError, err) 
       self.sav.remove(self.sav[len(self.sav)-1]) 
       self.sav_func.remove(self.sav_func[len(self.sav_func)-1]) 

這部分是給我下面的錯誤:

Exception in Tkinter callback 
Traceback (most recent call last): 
    File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__ 
    return self.func(*args) 
    File "D:/Google Drive/assign2_2-1.py", line 113, in add_func 
    self.redraw_all() 
    File "D:/Google Drive/assign2_2-1.py", line 132, in redraw_all 
    self.draw() 
    File "D:/Google Drive/assign2_2-1.py", line 145, in draw 
    self.canvas.create_line(i, fill = colour) 
    File "C:\Python27\lib\lib-tk\Tkinter.py", line 2201, in create_line 
    return self._create('line', args, kw) 
    File "C:\Python27\lib\lib-tk\Tkinter.py", line 2182, in _create 
    cnf = args[-1] 
IndexError: tuple index out of range 

從我可以收集它的東西做的不匹配的輸出的數量輸入的數字,但我仍然是有點失落。幫助會很棒!

+0

您的縮進在您的代碼中不正確。 –

回答

0

它看起來像i沒有足夠的值。要創建一條線,它需要四個值:x1,y1,x2,y2。