| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 
 | from Tkinter import *
 
class test(Canvas): 
    def __init__(self, win, bg="white"):        
        self.canvas = Canvas(win, width=300 ,height=300)        
        self.canvas.create_oval(100, 0, 200, 100, fill='red', tags='t1') 
        self.canvas.create_oval(100, 200, 200, 300, fill='blue', tags='t2') 
        self.canvas.create_line(150, 100, 150, 200, fill='black', tags='t2')
        self.canvas.pack(fill=BOTH,expand=1)
        # 
        self.canvas.bind("<Button-1>", self.mouseDown) 
        self.canvas.bind("<Button1-Motion>", self.mouseMove) 
        self.canvas.bind("<Button1-ButtonRelease>", self.mouseUp)         
 
 
    def mouseDown(self, event): 
        self.canvas.currObject =None 
        self.canvas.x1, self.canvas.y1 = event.x, event.y
        self.canvas.selObject = self.canvas.find_closest(self.canvas.x1, self.canvas.y1) 
        associateTag = self.canvas.gettags(self.canvas.selObject)[0]
        print self.canvas.find_withtag('2')
        self.canvas.selObject = self.canvas.find_withtag(associateTag)
        print self.canvas.selObject
 
    def mouseMove(self, event):  
        x2, y2 = self.canvas.canvasx(event.x), self.canvas.canvasy(event.y) 
        dx, dy = x2 -self.canvas.x1, y2 -self.canvas.y1 
        if self.canvas.selObject:
            for itemInselObject in self.canvas.selObject:
                self.canvas.move(itemInselObject, dx, dy) 
                self.canvas.x1, self.canvas.y1 = x2, y2 
 
    def mouseUp(self, event): 
        if self.canvas.selObject: 
            for itemInselObject in self.canvas.selObject:            
                self.canvas.selObject =None 
 
 
 
mainWindow = Tk()
test(mainWindow)
mainWindow.mainloop() | 
Partager