Форум сайта python.su
Есть два объекта, они могут смещаться вниз, для этого сначала выбирается объект, потом указывается точка назначения.
Объекты должны двигаться вне зависимости друг от друга, первый проход объектов относительно нормален, но при повторном выборе объектов и направлении их к точкам назначения система “задумывается”, и лишь через некоторое время они смещаются одним рывком. Прошу пояснить что я делаю не так, и как это исправить.
Код программы:
from tkinter import* root=Tk() root.title ('Проверка') c = Canvas(width=2250, height=2250,bg='green') c.pack() spisok=[] c.create_polygon(110, 110, 110, 160, 150, 135,tag='треугольник') c.create_rectangle(180,10,280,80, fill='black',tag='прямоугольник') def opred(event): c=event.widget coord_x=c.canvasx(event.x) coord_y=c.canvasy(event.y) item=c.find_closest(coord_x,coord_y) predmet_kortezh=c.gettags(item) global predmet predmet=' '.join(predmet_kortezh[:-1]) def sdvig(event): c=event.widget coord_x=c.canvasx(event.x) coord_y=c.canvasy(event.y) spisok.append([predmet,coord_x,coord_y]) def sdvig2(event=None): for n in range(len(spisok)): for elem in spisok[n]: if c.bbox(spisok[n][0])[2]<spisok[n][1] and c.bbox(spisok[n][0])[3]<spisok[n][2]: c.move(spisok[n][0],1,1) c.update() c.after(10,sdvig2) c.bind("<ButtonPress-1>", opred) c.bind('<ButtonPress-3>',sdvig) c.bind('<ButtonRelease-3>',sdvig2) root.mainloop()
Офлайн