Reputation: 13
def Color():
import random as r
color=['yellow','red','blue','black','green'] #5색
return r.choice(color)
def Shape():
import turtle as t
import random as r
t.up()
t.onscreenclick(t.goto) #클릭한 곳으로 거북이 이동
t.pencolor(Color()) #펜 색깔 결정
t.down()
t.speed('fastest') #가장 빠른 속도로 거북이 설정
shape = [0,3,4,5,6]
result = r.choice(shape)
line=r.randint(50,100) #50에서 100중에 random으로 반지름/변의 길이 설정
import turtle as t #turtle graphic import
import random as r #random import
t.onscreenclick(t.goto)
Shape()
if (t.onkeypress("Space")) : #Space를 눌렀을 때 채우기 함수 실행
t.onscreenclick(Fill())
if (t.onkeypress("Space")):
t.onscreenclick(Shape())
if (t.onscreenclick("c")):
Clear()
t.mainloop()
it says that Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\suyeo\AppData\Local\Programs\Python\Python39\lib\tkinter_init_.py", line 1892, in call return self.func(*args) File "C:\Users\suyeo\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 674, in eventfun fun(x, y) TypeError: 'str' object is not callable
Upvotes: 0
Views: 413
Reputation: 13533
onscreenclick
and onkeypress
setup callbacks - functions that are called when those events happen. You only need to call these functions once for each event or key - unless you need to modify them. AFAIK, they don't return any values. onscreenclick
takes one parameter: a function that takes 2 parameters, the x
and y
coordinates. onkeypress
takes 2 parameters: the callback function and the key.
import turtle as t
import random as r
def fill():
# TODO: Add your code here
pass
def clear():
# TODO: Add your code here
pass
def color():
color=['yellow','red','blue','black','green']
return r.choice(color)
def shape(x, y):
t.pencolor(color())
t.goto(x, y)
t.speed('fastest')
# Setup the callbacks. The first parameter to each is a function "pointer"
t.onscreenclick(shape)
t.onkeypress(fill, "space")
t.onkeypress(clear, "c")
shape(0, 0)
t.listen()
t.mainloop()
Upvotes: 0