turtle库使用——鼠标与键盘信号

Python的turtle模块也提供了简单的方法允许我们在Python Turtle Graphics 窗口接收鼠标按键信号,进而针对这些信号做出反应。

onclick()方法主要是在Python Turtle Graphics窗口有鼠标按键发生时,会执行参数的内容,而所放的参数是我们设计的函数:onclick(fun, btn=1, add=None)
fun是发生在onclick事件时所要执行的函数名称,它会传递按键发生的x,y位置给fun函数,btn默认是鼠标左键。

1.当在Python Turtle Graphics 窗口有按键发生时,在Python的Python Shell窗口将列出鼠标光标被按的x,y位置。

# onclick()方法主要是在Python Turtle Graphics窗口有鼠标按键发生时,会执行参数的内容,而所放的参数是我们设计的函数:
# onclick(fun, btn=1, add=None)
# fun是发生在onclick事件时所要执行的函数名称,它会传递按键发生的x,y位置给fun函数,btn默认是鼠标左键。
import turtle


def printStr(x, y):
    print(x, y)


t = turtle.Pen()
t.screen.onclick(printStr)
t.screen.mainloop()  # 一直运行直到窗口关闭才结束

使用鼠标在窗口点击,在Python的Python Shell窗口就会打印光标点击的x,y位置:

2.当在x轴大于0位置单击时,绘制半径是30的黄色圆,否则绘制半径为30的蓝色圆。

# 当在x轴大于0位置单击时,绘制半径是30的黄色圆,否则绘制半径为30的蓝色圆
import turtle


def drawSignal(x, y):
    if x > 0:
        turtle.fillcolor('yellow')
    else:
        turtle.fillcolor('blue')
    turtle.speed(15)
    turtle.penup()
    turtle.ht()
    turtle.setpos(x, y - 30)
    turtle.begin_fill()
    turtle.circle(30)
    turtle.end_fill()


t = turtle.Pen()
t.screen.onclick(drawSignal)
t.screen.mainloop()

效果:

3.onkey()和listen()

onkey()主要是关注键盘的信号,语法如下:

onkey(fun, key)  # fun是所要执行的函数,key是键盘按键

onkey()无法单独运作, 需要listen()将信号传给onkey()

单击up键海龟往上移100,单击down键海龟往下移100,单击left键海龟往左移100,单击right键海龟往右移100。

import turtle


def keyUp():
    t.seth(90)
    t.forward(100)


def keyDown():
    t.seth(270)
    t.forward(100)


def keyL():
    t.seth(180)
    t.forward(100)


def keyR():
    t.seth(0)
    t.forward(100)


t = turtle.Pen()
t.screen.onkey(keyUp, 'Up')
t.screen.onkey(keyDown, 'Down')
t.screen.onkey(keyL, 'Left')
t.screen.onkey(keyR, 'Right')
t.screen.listen()
t.screen.mainloop()

​​​​​​​

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笨小古

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值