我无法从函数中保存变量(<motion>)

时间:2017-07-23 01:36:17

标签: python tkinter

我需要将变量list_cord保存在函数回调中。

from tkinter import *
def test():
    root=Tk()
    root.geometry('{}x{}'.format(1280, 720))
    def callback(event):
        x=event.x
        y=event.y
        list_cord=[x,y]
        print("x=%s,y=%s"%(x,y))
    root.bind("<Motion>", callback)
    #print(list_cord)  # How can i get the values of lista here.(global doesn't work)
    root.mainloop()
test()

当我使用global list_cord以上list_cord=[x,y]然后打印出来的时候list_cord is not defined。 我对此(我的英语)有点新意,但我需要帮助。 感谢

1 个答案:

答案 0 :(得分:0)

如果您只是在寻找当前鼠标位置,那么在移动鼠标时不需要设置<Motion>侦听器来抓住位置,您可以从{{}获取它{1}}:

winfo

如果要连续监视鼠标位置,则必须在root = Tk() list_cord = [root.winfo_pointerx(), root.winfo_pointery()] print(list_cord) 函数内执行此操作,因为其外部作用域将完成执行并在callback块之前输入Tk.mainloop()块{1}}甚至被召唤。