2017-02-23 100 views
0

我正在python中使用tkinter編寫程序並使用find_overlap函數,這裏是我的代碼。TypeError:overlapps()缺少3個必需的位置參數:'y1','x2'和'y2'

from tkinter import * 
import tkinter.messagebox 
root = Tk() 

coords = 1447, 474 
canvas = Canvas(root, width=1480, height=960) 
frame = Frame(root, width=209, height=960) 

def cords(event): 
    print(event.x, event.y) 

def click(event): 
    canvas_id = canvas.create_line(event.x, event.y, coords) 
    canvas.after(100,canvas.delete,canvas_id) 

line = click 

obj1=canvas.create_rectangle(605,482,247,157) 
obj2=canvas.create_rectangle(802,720,270,640) 

objoverlap2=canvas.find_overlapping(802,720,1082, 473) 

canvas.bind('<Button-1>',line) 
photo = PhotoImage(file='76.gif') 
label = Label(frame, image=photo) 
label.config(image=photo) 
label.pack() 

frame.pack(side='right') 
canvas.pack(side='left') 

while True: 
    canvas.find_overlapping(605,156,247,482)!=line 
    root.mainloop() 

當我運行這段代碼我得到這個錯誤

TypeError: overlaps() missing 3 required positional arguments: 'y1', 'x2', and 'y2'

但在最後的環路,將誤差是它說。另外我不會在代碼中調用overlapps(),這更加令人困惑。 更新我只是注意到它是在39線這是奇怪的,因爲我沒有一條線39

+0

請在您的答案發布完整的堆棧跟蹤,以便我們可以看到錯誤來自哪裏。 – Soviut

+0

你的'canvas.find_overlapping(605,156,247,482)!= line'在做什麼?這應該是一個「if」陳述嗎? – Soviut

+0

是的但是當我用它作爲一個我得到了同樣的錯誤 – Nerfbeard

回答

0

對於我的錯誤,我只是簡單地填寫輸入要求,那些想知道它是你放在代碼中的相同信息使矩形

相關問題