首页 > 解决方案 > 如何使用 event.x 和 event.y 作为我在每个地方都使用的变量

问题描述

我尝试多次在函数之外使用 event.x 和 event.y 但没有任何效果

from tkinter import *

root = Tk()


def start_mouse_press(event):
    print(f"starting mouse at {event.x, event.y}")


def stop_mouse_press(event):
    print(f"stopping mouse at {event.x, event.y}")


root.bind('<ButtonPress-1>', start_mouse_press)
root.bind('<ButtonRelease-1>', stop_mouse_press)


root.mainloop()

标签: pythontkinter

解决方案


虽然不是特别整洁,但您可以使用全局变量来存储起始位置以供以后使用。

考虑下面的例子

from tkinter import *

root = Tk()

start_pos = None

def start_mouse_press(event):
    global start_pos
    start_pos = (event.x, event.y)

def stop_mouse_press(event):
    print(f"Start Pos {start_pos}\nEnd Pos {event.x, event.y}")


root.bind("<ButtonPress-1>", start_mouse_press)
root.bind("<ButtonRelease-1>", stop_mouse_press)

记录开始位置,以便在释放鼠标按钮时,可以打印开始和结束位置。


推荐阅读