我试图打印一个变量的值,该变量的值是根据乌龟中点击的点的坐标分配的。
import turtle as t
position=0
j=0
def get(a,b):
print("(", a, "," ,b,")")
global position
if b>0:
if a<0:
position=1
else:
position=2
else:
if a<0:
position=3
else:
position=4
def main():
global j
j = j+1
t.onscreenclick(get)
print(position)
t.mainloop()
main()
但t.onscreenclick()
和t.mainloop()
之间没有(我尝试过调用其他函数等其他东西)会被执行吗?
答案 0 :(得分:0)
onscreenclick
不会等待您的点击。它只通知mainloop
点击时必须执行的功能。 mainloop
执行所有操作 - 它创建主窗口,从操作系统获取鼠标/键盘事件,将事件发送到窗口中的元素/窗口小部件,运行分配有onscreenclick
/ ontimer
/等的函数。 ,重绘屏幕上的元素等。
所以在print(position)
打开窗口之前执行mainloop
您必须在get()
import turtle as t
# --- functions ---
def get(x, y):
print("(", x, ",", y, ")")
if y > 0:
if x < 0:
position = 1
else:
position = 2
else:
if x < 0:
position = 3
else:
position = 4
print('pos:', position)
# --- main ---
# inform mainloop what function use when you click
t.onscreenclick(get)
# start "the engine" (event loop)
t.mainloop()