python中如何引入画布_如何使用Tkinter在Python画布上引用绘画事件?

我知道这可能是有史以来最简单的问题。但是,我开始学习Tkinter,我不知道当鼠标单击GUI时如何引用事件。在

当我点击画布时,我想画一些点。我不能在paint函数中引用canvas变量。在

这段代码基于SO中的问题

每当我尝试这个例子时,paint函数中就会出现一个错误NameError: name 'canvas' is not defined;def main():

master = Tk()

# Right side of the screen / img holder

right_frame = Frame(master, width=500, height=500, cursor="dot")

right_frame.pack(side=LEFT)

# Retrieve image

image = Image.open("./image/demo.JPG")

image = image.resize((800, 700), Image.ANTIALIAS)

photo = ImageTk.PhotoImage(image)

# Create canvas

canvas = Canvas(right_frame, width=800, height=700)

canvas.create_image(0, 0, image=photo, anchor="nw")

canvas.pack()

canvas.bind("", paint)

message = Label(right_frame, text="Press the mouse to draw")

message.pack(side=BOTTOM)

mainloop()

def paint(event):

python_green = "#476042"

x1, y1 = (event.x - 1), (event.y - 1)

x2, y2 = (event.x + 1), (event.y + 1)

canvas.create_oval(x1, y1, x2, y2, fill=python_green)

if __name__ == "__main__":

main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值