在python中尝试拖动海龟时内核崩溃
我决定使用内置的海龟来显示我的整个程序,但是如果有更好的选择,你也可以把它留在这里 因此,当我使用turtle并将一个函数绑定到左键单击拖动时,它最终运行良好,但只适用于缓慢的鼠标速度,因此,在崩溃内核并导致致命的“堆栈溢出”错误之前,它会运行很短的时间 代码:在python中尝试拖动海龟时内核崩溃,python,python-3.x,turtle-graphics,Python,Python 3.x,Turtle Graphics,我决定使用内置的海龟来显示我的整个程序,但是如果有更好的选择,你也可以把它留在这里 因此,当我使用turtle并将一个函数绑定到左键单击拖动时,它最终运行良好,但只适用于缓慢的鼠标速度,因此,在崩溃内核并导致致命的“堆栈溢出”错误之前,它会运行很短的时间 代码: 从海龟导入* screen=screen() t1=海龟() t1.形状(“圆”) t1.pu() bi=1 ni=1 屏幕跟踪程序(无,0) t1.速度(0) 屏幕。屏幕大小(10001000) def增长(ke): t1.后藤(ke
从海龟导入*
screen=screen()
t1=海龟()
t1.形状(“圆”)
t1.pu()
bi=1
ni=1
屏幕跟踪程序(无,0)
t1.速度(0)
屏幕。屏幕大小(10001000)
def增长(ke):
t1.后藤(ke.x-475,-ke.y+400)
全球bi,ni
t1.形状尺寸(铋、镍)
bi+=0.004
ni+=0.004
s2=getcanvas()
s2.绑定(“,增长)
s2.绑定(“,增长)
您的代码有几个问题:
- 您没有禁用事件处理程序中的事件,这是导致 到您的致命“堆栈溢出”错误
- 您绕过了turtle自己的事件机制,使用了tkinter的事件机制 基础有时候这是必要的,但这不是一个好地方 开始
- 您不需要关闭
,因为您没有绘制任何东西tracer()
from turtle import Turtle, Screen
def grow(x, y):
global bi, ni
turtle.ondrag(None) # disable events when inside handler
screen.onclick(None)
turtle.goto(x, y)
turtle.shapesize(bi, ni)
bi += 0.04
ni += 0.04
turtle.ondrag(grow)
screen.onclick(grow)
screen = Screen()
screen.screensize(1000, 1000)
turtle = Turtle('circle')
turtle.speed('fastest')
turtle.penup()
bi = ni = 1
turtle.ondrag(grow)
screen.onclick(grow)
screen.mainloop()
仅供参考,你的内核没有崩溃,你的程序崩溃了。如果内核崩溃,我不希望你的程序是原因
from turtle import Turtle, Screen
def grow(x, y):
global bi, ni
turtle.ondrag(None) # disable events when inside handler
screen.onclick(None)
turtle.goto(x, y)
turtle.shapesize(bi, ni)
bi += 0.04
ni += 0.04
turtle.ondrag(grow)
screen.onclick(grow)
screen = Screen()
screen.screensize(1000, 1000)
turtle = Turtle('circle')
turtle.speed('fastest')
turtle.penup()
bi = ni = 1
turtle.ondrag(grow)
screen.onclick(grow)
screen.mainloop()