【发布时间】:2014-09-05 17:00:58
【问题描述】:
我在这段代码中遇到了错误: 错误出现在 Button() 命令中的函数 settings() 中。但我没有任何计划如何解决它,对不起。我不能将这 3 个命令放在外部函数中,因为它不会获取变量...
from turtle import *
from tkinter import *
reset()
hastrail = 1
def moveup():
setheading(90)
forward(5)
def movedown():
setheading(270)
forward(5)
def moveright():
setheading(0)
forward(5)
def moveleft():
setheading(180)
forward(5)
def turnleft():
left(18)
def turnright():
right(18)
def forw():
forward(5)
def backw():
backward(5)
def trailrem():
global hastrail
if hastrail == 1:
penup()
hastrail = 0
else:
pendown()
hastrail = 1
def settings():
color(str(colorchooser.askcolor(title = "Change a line color")[1]),str(colorchooser.askcolor(title = "Change a fill color")[1]))
tk = Tk ()
tk.resizable(0,0)
tk.title("Shape, Shapesize, Pensize")
tk.geometry("400x90")
listbox = Listbox(tk)
listbox.place(x=0,y=0,width=200,height=90)
listbox.insert(1,"arrow")
listbox.insert(2,"turtle")
listbox.insert(3,"circle")
listbox.insert(4,"square")
listbox.insert(5,"triangle")
shsi = Scale(tk,width = 10,orient = HORIZONTAL)
shsi.place(x=200,y=0,width=200,height=30)
trsi = Scale(tk,width = 10, orient = HORIZONTAL)
trsi.place(x=200,y=30,width=200,height=30)
Button(tk,text="Save",command = lambda:shape(str(listbox.get(ACTIVE)))&shapesize(int(shsi.get()))&pensize(int(trsi.get()))).place(x=200,y=60,width=200,height=30)
onkeypress(moveup,"Up")
onkeypress(movedown,"Down")
onkeypress(moveright,"Right")
onkeypress(moveleft,"Left")
onkeypress(turnleft,"a")
onkeypress(turnright,"d")
onkeypress(forw,"w")
onkeypress(backw,"s")
onkeypress(trailrem,"t")
onkeypress(settings,"c")
listen()
mainloop()
请告诉我我做错了什么//请修复它。
【问题讨论】:
-
具体问题是什么?您是否收到错误消息或堆栈跟踪?你期望会发生什么?发生了什么?
-
另外,你的格式是可怕的。此代码无法阅读。看看PEP 8,Python 的官方风格指南。
-
我收到一条错误消息。我想在一个按钮命令中更改海龟的形状、形状大小和笔大小。 pensize 没有改变,并出现错误消息:“TypeError: unsupported operand type(s) for &: 'NoneType' and 'NoneType'”
-
“我不能将这 3 个命令放在外部函数中,因为它不会获取变量” Python has closure,你知道的。
-
尝试查找
&operator 的实际作用。你可能想做点别的。
标签: python function button turtle-graphics