我已将3张图像导入画布。 当我将这些图像从一个位置拖到另一个位置时,如何获取这些图像的x和y坐标
拖放
from tkinter import *
root = Tk()
c = Canvas( root, width = 1920, height = 1080, bg = "white" ); c.pack()
class MainFrame:
def __init__( self, image0, image1, image2 ):
self.__image0 = image0
self.__image1 = image1
self.__image2 = image2
self.__x, self.__y = 250,250
self.__picture0 = c.create_image( self.__x, self.__y,
image = self.__image0 )
self.__picture1 = c.create_image( self.__x, self.__y,
image = self.__image1 )
self.__picture2 = c.create_image(self.__x, self.__y,image = self.__image2)
self.__move = False
c.bind( "<Button-1>", self.startMovement )
c.bind( "<ButtonRelease-1>", self.stopMovement )
c.bind( "<Motion>", self.movement )
def startMovement( self, event ):
self.__move = True
self.initi_x = c.canvasx(event.x)
self.initi_y = c.canvasy(event.y)
print('startMovement init', self.initi_x, self.initi_y)
self.movingimage = c.find_closest(self.initi_x, self.initi_y, halo=5)
print(self.movingimage)
print(c.find_all()) # get all canvas objects ID
def stopMovement( self, event ):
self.__move = False
def movement( self, event ):
if self.__move:
end_x = c.canvasx(event.x)
end_y = c.canvasy(event.y)
print('movement end', end_x, end_y)
deltax = end_x - self.initi_x #Find the difference
deltay = end_y - self.initi_y
print('movement delta', deltax, deltay)
self.initi_x = end_x #Update previous current with new location
self.initi_y = end_y
print('movement init', self.initi_x, self.initi_y)
c.move(self.movingimage, deltax, deltay) # move object
print(end_x)