我只是try 获取鼠标事件(如鼠标X位置和鼠标Y位置),但tkinter正在计算tkinter窗口外的鼠标事件.

import tkinter as tk

window = tk.Tk()
window.geometry('400x400')

def get_pos(event):
    print(f'x={event.x} y={event.y}')

window.bind('<Motion>',get_pos) #binding motion event with window

window.mainloop()

**现在如果你运行上面的代码,tkinter将提示窗口的"400x400"维度,现在访问代码if 你在窗口中的任何方向上悬停或移动鼠标指针,它应该打印鼠标的位置.但如果您将鼠标指针移出窗口,它仍然会打印鼠标位置.为什么会发生这种情况.

为什么鼠标指针在tkinter窗口之外时,tkinter仍在打印鼠标位置**

I want to get(print) mouse position only if mouse is inside tkinter window , not outside of tkinter window.

感谢你们所有人的帮助.

推荐答案

为什么鼠标指针在tkinter窗口之外时,tkinter仍在打印鼠标位置**

这是因为窗口处于活动状态.它就是这样设计的.

我只想在鼠标位于tkinter窗口内而不是tkinter窗口外的情况下获取(打印)鼠标位置.

通过询问tkinter鼠标下方是哪个小部件,您可以轻松过滤掉窗口外的事件.如果tkinter返回None,则鼠标位于窗口之外.

def get_pos(event):
    if event.widget.winfo_containing(event.x, event.y) is not None:
        print(f'x={event.x} y={event.y}')

Python-3.x相关问答推荐

"安装serial vs安装psyserial header,"""

在循环访问XML中的多个层时,xml.etree.Elementree Python3解析器不起作用

如何通过Pandas为不同的列集垂直设置列数据?

按一列分组,如果日期列相同,则在数字列中填写缺少的值

如何立即从asyncio.Task获取异常?

如何查找以开头并替换的字符串

asyncio.as_completed() 应该接受 `Iterable`,但如果输入是 `Generator` 就会崩溃?

如果网站加载时间过长,如何强制 Selenium 刷新

为列表列表中的每个列表插入 str 到 index[0] 中. Python

有没有办法使用重采样矢量化添加缺失的月份?

RGB 图像中最主要的 colored颜色 - OpenCV / NumPy / Python

python3源的类图查看器应用程序

将变量传递给 Google Cloud 函数

使用 python 正则表达式匹配日期

Pythonic,自定义警告

如何为 Python 中的线程设置异步事件循环?

如何用pymongo连接远程mongodb

是否在未完成初始化的对象上调用了 del?

我可以替换 Python 中对象的现有方法吗?

python中的绝对导入是什么?