meister56 hat geschrieben:danke für den versuch aber du hattest recht mit deine vermutung! das ist leider echt zu Komplex um mir weiterzuhelfen!
Also dann hier mal nur das Gerüst, das du brauchst.
Experimentier mal damit herum, ändere hier und da was und sieh dir das Ergebnis an, bis du verstanden hast, was genau hier passiert.
Code: Alles auswählen
import Tkinter as tk
class Figur(object):
def __init__(self,canv, x,y,size=90,background="yellow",border="blue"):
self.canv = canv
self.x, self.y = x, y
r = size // 2
self.item = self.canv.create_oval(x-r, y-r, x+r, y+r,
fill=background,outline=border,width=2)
self.dragged = False
self.canv.tag_bind(self.item,"<Button-1>",self.drag)
self.canv.tag_bind(self.item,"<ButtonRelease-1>",self.drop)
self.canv.tag_bind(self.item,"<Enter>",self.enter)
self.canv.tag_bind(self.item,"<Leave>",self.leave)
self.canv.tag_bind(self.item,"<Motion>",self.move)
def enter(self,event):
self.canv.config(cursor="hand2")
self.canv.itemconfig(self.item,width=4)
def leave(self,event):
self.canv.config(cursor="")
self.canv.itemconfig(self.item,width=2)
def drag(self,event):
self.dragged = True
self.canv.tag_raise(self.item)
self.startx, self.starty = event.x, event.y
def drop(self,event):
if self.dragged:
self.dragged = False
def move(self,event):
if self.dragged:
dx, dy = event.x-self.startx, event.y-self.starty
self.canv.move(self.item,dx,dy)
self.startx, self.starty = event.x, event.y
self.x, self.y = self.x+dx, self.y+dy
if __name__ == "__main__":
root = tk.Tk()
canv = tk.Canvas(root, width=600, height=400)
canv.pack()
figur1 = Figur(canv, 100,100)
figur2 = Figur(canv, 200, 300, size=60, background="gold", border="red")
root.mainloop()