python 为什么按下该键时此图像不移动?

nwnhqdif  于 2023-06-04  发布在  Python
关注(0)|答案(2)|浏览(216)

Python***和***Tkinter***nebwie。我试着在tkinter中创建一个图像,并使用箭头移动它。图像显示它应该,但当我尝试使用箭头移动它时,它根本不起作用。知道为什么吗我用的是***python 2.7.18,我用的是***Ubuntu***的最新版本

from Tkinter import *

############
#things

w = 500
h = 500

width=w
height=h

#############

######################################################################
#window

window = Tk()
window.title("Moving image")
canvas = Canvas(window, width = 500, height = 500)
canvas.pack()
my_image = PhotoImage(file="/home/user/Documents/ddd.png")
canvas.create_image(260, 125, anchor = NW, image=my_image)

#######################################################################

################################
#var

def up(event):
  x = 0
  y = -10
  canvas.move(my_image, x, y)

def down(event):
  x = 0
  y = 10
  canvas.move(my_image, x, y)

def left(event):
   x = -10
   y = 0
   canvas.move(my_image, x, y)

def right(event):
  x = 10
  y = 0
  canvas.move(my_image, x, y)


###############################

###############################
#binds
window.bind("<Up>", up)
window.bind("<Down>", down)
window.bind("<Left>", left)
window.bind("<Right>", right)

window.mainloop()

##############################
m528fe3b

m528fe3b1#

您正在尝试移动错误的对象。使用canvas.create_image返回的对象:

image_id = canvas.create_image(260, 125, anchor = NW, image=my_image)

...

canvas.move(image_id, x, y)

或者,您可以将标记附加到图像:

canvas.create_image(260, 125, anchor=NW, image=my_image, tag="move")

...

canvas.move("move", x, y)

这将移动附加了此特定标记的所有对象。

fnx2tebb

fnx2tebb2#

votemap surf_premium
:)))

相关问题