滑块拼图开发:turtle中onclick调用textinput返回None问题求助
问题解决:turtle.textinput返回None的问题
你的代码里有两个关键问题导致load始终是None:
错误嵌套
turtle.onclick():在加载按钮的分支中,你用turtle.onclick(turtle.textinput(...))来获取输入,但turtle.onclick()是用来绑定点击事件回调函数的方法,它本身的返回值固定为None,所以不管用户输入什么,load都会被赋值为None。正确的做法是直接调用turtle.textinput()获取用户输入。退出按钮的逻辑错误:
turtle.onclick(quit(1))会直接执行quit(1)导致程序退出,而不是在点击时触发退出。应该直接调用quit()或者turtle.bye()来终止程序。
修正后的代码如下:
def button_click(x,y): if (x > 247 and x < 315) and (y > -292 and y < -246): # 点击退出按钮 quit() # 直接退出程序 elif (x > 143 and x < 213) and (y > -302 and y < -236): # 点击加载按钮 load = turtle.textinput('加载文件', "请输入文件名:") print(load) # 现在会正确输出用户输入的文件名
这样修改后,点击加载按钮弹出输入框,用户输入的文件名会被正确赋值给load,后续可以用这个变量来处理文件加载逻辑。
内容的提问来源于stack exchange,提问作者Jack Attack
相关产品推荐
相关产品推荐

