python-tkinter模块图形分布移动(可键盘操作)

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:红色矩形可以通过矩形键盘实时移动
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间之里

好东西就应该拿出来大家共享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值