1.问题描述
在学习python开发GUI界面时,对于模块单元的位置摆放虽然有pack和grid和place可以供我们选择用于位置摆放,但始终觉得不够便捷,现在给大家提供一个新思路(reference:resource)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from tkinter import *
def moverectangle(event): # 绑定方向键
if event.keysym == "Up":
canvas.move(1, 0, -5) # 移动的是 ID为1的事物【move(2,0,-5)则移动ID为2的事物】,使得横坐标加0,纵坐标减5
elif event.keysym == "Down":
canvas.move(1, 0, 5)
elif event.keysym == "Left":
canvas.move(1, -5, 0)
elif event.keysym == "Right":
canvas.move(1, 5, 0)
tk = Tk()
canvas = Canvas(tk, width = 400, height = 400) #设置画布
canvas.pack() #显示画布
r = canvas.create_rectangle(180,180,220,220,fill="red") # 事件ID为1
print(r) #打印ID验证一下
m = canvas.create_rectangle(10,10,20,20,fill="blue") #事件ID为2
print(m) #打印ID验证一下
canvas.bind_all("<KeyPress-Up>",moverectangle) #绑定方向键与函数
canvas.bind_all("<KeyPress-Down>",moverectangle)
canvas.bind_all("<KeyPress-Left>",moverectangle)
canvas.bind_all("<KeyPress-Right>",moverectangle)
mainloop()
results:红色矩形可以通过矩形键盘实时移动