Python中tkinter入门编程9

在《Python中tkinter编程入门8-CSDN博客》中提到,tkinter中的Canvas表示画布,可以在画布中显示文字和图片。除了以上功能外,还可以在Canvas中添加对鼠标或键盘的响应。

1 为Canvas添加事件响应

可以通过Canvas的bind()方法添加对鼠标或键盘等事件的响应,代码如图1所示。

图1 Canvas对鼠标或键盘的响应

其中,bind()方法的第一个参数指定了要响应的事件,该参数是一个字符串,其格式为“<事件1-事件2>”,<Button-1>表示鼠标左键点击事件,<Alt-A>表示Alt键和A键同时被按下的事件;第二个参数指定了一个自定义函数paint,当第一个参数指定的事件发生时,调用该函数。

2 响应函数

我们希望在Canvas上,点击鼠标左键,就会在该位置处显示一个椭圆。通过多次点击鼠标左键实现画图的功能。

响应函数paint()的代码如图2所示。

图2 paint()函数

其中,paint()函数的参数event表示鼠标点击事件,event.x和event.y分别表示鼠标点击处的横纵坐标。第8行中,通过Canvas的实例canvas调用create_oval()方法来画椭圆,x0、y0、x1和y1的含义如图3所示,从第4-7行代码中可以看出,此时create_oval()方法画的是一个半径为2的圆;fill参数指定了该圆的填充颜色。

图3 create_oval()方法中x0、y0、x1和y1的含义

3 运行效果

运行该程序,通过点击鼠标左键就可以在相应位置画红色的圆形,如图4所示。

图4 运行效果

4 完整代码

import tkinter

def paint(event):
    x0 = event.x-4
    y0 = event.y-4
    x1 = event.x+4
    y1 = event.y+4
    canvas.create_oval(x0, y0, x1, y1, fill='red')
    
root = tkinter.Tk()
canvas = tkinter.Canvas(root, bg='lightblue', width=450, height=450)
canvas.bind('<Button-1>', paint)
canvas.pack()
                            
root.mainloop()

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值