2017-02-23 89 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

对于我的错误,我只是简单地填写输入要求,那些想知道它是你放在代码中的相同信息使矩形

相关问题