【发布时间】:2016-05-14 15:42:59
【问题描述】:
我正在尝试制作一个程序,当您按下 S 按钮时,它会将形状移动到网格上它下方的正方形。我第一次设法让形状移动,但之后它就变得越来越大。
这是我的代码:
from tkinter import *
root = Tk()
global y
y = 0
x = 0
def down(event):
global y
global x
y = y+100
x = x+ 100
global pirate
canvas.delete(pirate)
pirate = canvas.create_oval((x,y), (100,100), fill = 'red')
print(y)
canvas = Canvas(root, width = 1000, height = 1000)
canvas.pack()
for a in range (10):
i = a*100
canvas.create_line((i,0), (i,1000))
for a in range (10):
i = a*100
canvas.create_line((0,i), (1000,i))
pirate = canvas.create_oval((x, y),(100, 100), fill = 'red')
root.bind('<Key - S>', down)
root.mainloop()
【问题讨论】:
-
你不需要删除和重绘椭圆 - 你可以使用
canvas.move(pirate, x, y)。不太确定参数 x 和 y 应该是什么 - 我自己从未使用过该方法。刚刚在文档中看到了。 -
@ArtOfWarfare 嘿,如果这看起来像偷窃,请添加答案。既然你说,你不知道怎么做,我想我应该加一个。我很乐意删除我的赞成票。 :)
-
@Lafexlos - 不,没关系。我投票最多的一些答案是我略微扩展了其他人在 cmets 中所说的内容。你比我付出的更多。我只是看了
Canvas文档,看到了move方法,我想我会提到它。 -
x 和 y 是增量
标签: python tkinter python-3.5 tkinter-canvas