Python:turtle-(exit)在无限循环中单击onclick?
我正在学习Python(2.7),目前turtles在列表中 关于文档,有exitonclick()和onclick()等函数。但是,我在使用它们时遇到了一些问题 例如: 此单击事件正在工作,但仅在循环完成后:Python:turtle-(exit)在无限循环中单击onclick?,python,loops,onclick,turtle-graphics,Python,Loops,Onclick,Turtle Graphics,我正在学习Python(2.7),目前turtles在列表中 关于文档,有exitonclick()和onclick()等函数。但是,我在使用它们时遇到了一些问题 例如: 此单击事件正在工作,但仅在循环完成后: [...] for i in range(4): trtl.forward(100) trtl.left(90) scrn.exitonclick() [...] 但我想做的是这样的事情(但不起作用): 或者像这样: [...] while True: trtl
[...]
for i in range(4):
trtl.forward(100)
trtl.left(90)
scrn.exitonclick()
[...]
但我想做的是这样的事情(但不起作用):
或者像这样:
[...]
while True:
trtl.forward(100)
trtl.left(91)
scrn.screenonclick(break)
[...]
我想你已经大致了解了我要尝试的概念
使用这些onclick方法或实现onclick中断的其他方法有什么提示吗
谢谢 您是否尝试将单击处理程序移到开头?此处,将在绘图开始前绑定到单击:
def say_bye(x, y):
bye()
scrn.onclick(say_bye)
for i in range(4):
trtl.forward(100)
trtl.left(90)
嗯,不幸的是,它不是一个属性:“AttributeError:“\u Screen”对象没有“screenonclick”属性。不幸的是,第二个想法也不起作用。程序只是在exitonclick()上阻塞,直到屏幕被单击为止-这显然是在进入循环之前退出屏幕^^请再试一次:)谢谢你的坚持。:-)是的,这很有效!至少以务实的方式。缺点似乎是Screen实例必须是全局变量,因此可以调用bye()-/精彩的!如果你满意这个答案,你能接受吗?以下是如何:
def say_bye(x, y):
bye()
scrn.onclick(say_bye)
for i in range(4):
trtl.forward(100)
trtl.left(90)