Tkinter矩形连接到按键

问题描述

以下程序在画布中心绘制一个矩形。按下右箭头键时矩形应该变宽,而按下左箭头键时矩形会变窄。

这是代码

from tkinter import *
root = Tk()

canvas = Canvas(root,width=400,height=300,bg="#000000")
canvas.pack()
x1 = 150
y1 = 100
x2 = 250
y2 = 200

class ResizeRect:
    def __init__(self,x1,y1,x2,y2):
        self.x1 = x1
        self.y1 = y1
        self.x2 = x2
        self.y2 = y2
        self.rect = canvas.create_rectangle(0,1,1)
    def draw(self):
        canvas.delete(self.rect)
        self.rect = canvas.create_rectangle(x1,y2,outline="#00B000",width=2)
        
    def narrower(self):
        self.x1 = self.x1 + 5
        self.x2 = self.x2 - 5
        
    def wider(self):
        self.x1 = self.x1 - 5
        self.x2 = self.x2 + 5
        
r = ResizeRect(150,100,250,200)
r.draw()

def left(event):
    r.narrower()
    r.draw()
    
def right(event):
    r.wider()
    r.draw()


canvas.bind_all('<KeyPress-Left>',left)
canvas.bind_all('<KeyPress-Right>',right)

我的老师告诉我,我需要在draw函数的参数中添加'self'关键字,但我不知道他的意思。 (我不能再问他,因为他现在心情不好。)非常感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)