首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python tkinter鼠标位置"bind('<Motion>')“返回错误位置

在Python中,使用tkinter库可以创建图形用户界面(GUI)应用程序。当我们想要获取鼠标在窗口中的位置时,可以使用bind()方法来绑定鼠标移动事件('<Motion>'),然后在事件处理函数中获取鼠标的位置。

然而,当我们使用bind('<Motion>')来绑定鼠标移动事件时,可能会遇到返回错误位置的问题。这个问题通常是由于在绑定事件时没有正确地传递事件对象(event object)导致的。

为了解决这个问题,我们可以修改代码,将事件对象作为参数传递给事件处理函数。下面是一个示例代码:

代码语言:txt
复制
import tkinter as tk

def motion(event):
    x = event.x
    y = event.y
    print("鼠标位置:x = {}, y = {}".format(x, y))

root = tk.Tk()
root.bind('<Motion>', motion)
root.mainloop()

在上面的代码中,我们定义了一个motion()函数作为事件处理函数,它接受一个事件对象event作为参数。在函数中,我们可以通过event.x和event.y来获取鼠标的位置,并进行相应的处理。这样,我们就可以正确地获取鼠标位置了。

对于这个问题,腾讯云没有特定的产品或者链接地址与之相关。但是,腾讯云提供了丰富的云计算服务和解决方案,可以帮助开发者构建和部署各种类型的应用程序。如果您有其他关于云计算或者其他技术的问题,我可以帮助您解答。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

pythontkinter窗口位置坐标大小等实现示例

正在尝试着做一个比较完善的画图软件,计划使用tkinter库中的canvas控件来做,然后正在攻关图形项位置、坐标、大小及其他属性项的保存和加载的问题,刚好需要用到坐标、位置的知识,因此作为这个画图软件的附带产出物...好的,言归正传,回归本篇博文的主题:pythontkinter窗口位置|坐标\大小等知识的科普。 大家都知道tkinter库中有很多控件和主窗口,因此这些控件和主窗口都有对应的屏幕坐标的信息。...以上两个方法都是无参方法,通过返回值我们可以获得窗口的宽高。...(4)一个很重要的知识点 我们使用上述的方法得到的位置和宽高,其实是tk初始化时的一个值。因此在初始化的时候默认都是1,如果需要获取准确的位置和大小信息此时我们调用update方法,刷新win窗口。...到此这篇关于pythontkinter窗口位置\坐标\大小等实现示例的文章就介绍到这了,更多相关pythontkinter窗口位置\坐标\大小内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持

2.3K60

Python+tkinter程序运行后自由拖放组件调整位置

问题描述: 使用Python+tkinter编写GUI程序,程序运行后可以自由拖放组件调整组件位置。 参考代码: ?...运行效果: 温馨提示: 关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(...的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1000篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过500节Python...微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习1318道客观题和185道编程题,题库持续更新;发送消息“编程比赛...”了解Python小屋编程大赛详情。

1.2K20

python实现选择截图区域

一直想用python实现一个类似QQ截图的功能,但不直接截图,而是返回截图的区域,以下是代码 # -*- coding:utf-8 -*-   import tkinter import tkinter.filedialog...tkinter主窗口 root = tkinter.Tk() #指定主窗口位置与大小 root.geometry('200x80+400+300') #不允许改变窗口大小 root.resizable(...False, False) class MyCapture:     def __init__(self, png):         #变量X和Y用来记录鼠标左键按下的位置         self.X...self.canvas.create_p_w_picpath(screenWidth//2, screenHeight//2, p_w_picpath=self.p_w_picpath)         #鼠标左键按下的位置...('', onLeftButtonMove)         #获取鼠标左键抬起的位置,保存区域截图         def onLeftButtonUp(event):

3.6K10

Python使用tkinter打造自定义对话框完整代码

问题来源:前一阵发过一个技术文章Python编写抽奖式随机提问程序,其中有个弹出式对话框,好像上海科技大学宋老师在群里当时问了一句对话框中中奖姓名是否能显示的大一些,如图: 当时记得标准的tkinter...import tkinter from tkinter.commondialog import Dialog root = tkinter.Tk() root.title('测试-弹出自定义对话框')...self.top.bind('', onLeftButtonUp) # 鼠标移动,改变弹出式窗口位置 def onLeftButtonMove(event...('', onLeftButtonMove) # 弹出消息对话框的按钮 def onbtnPopupClick(): btnPopup['state'] = 'disabled...' w = MyPopup('恭喜', '测试成功\n哈哈嘿嘿呼呼') btnPopup.wait_window(w.top) # 避免弹出式窗口尚未关闭就关闭主窗口时引发错误 try

2.9K40

零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)

Python自带了tkinter 模块,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法。...将文本插入到指定位置 see(位置) 在指定位置是否可见文本,返回布尔值 index(标记) 返回标记所在的行和列 mark_names() 返回所有标记名称 mark_set(标记,位置) 在指定位置设置标记...列表框控件的主要方法见下面的表: 方法 功能描述 curselection() 返回光标选中项目编号的元组,注意并不是单个的整数 delete(起始位置,终止位置) 删除项目,终止位置可省略,全部清空为...delete(0,END) get(起始位置,终止位) 返回范围所含项目文本的元组,终止位置可忽略 insert(位置,项目元素) 插入项目元素(若有多项,可用列表或元组类型赋值),若位置为END,则将项目元素添加在最后...-3> --- 按住鼠标左键移动 --- 按住鼠标中键移动 --- 按住鼠标右键移动 --- 转动鼠标滚轮 <MouseWheel

13.8K30

Python3中tkinter模块使用方法详解

参考链接: Python | 使用Tkinter的距离时间GUI计算器 转载自 覆手为云p 的博客,附上原文网址,感觉非常有用,存下档,谢谢帮助~~~  https://www.cnblogs.com/...coords(ID)          返回对象的位置的两个坐标(4个数字元组); 对于按钮组件、菜单组件等可以在创建组件时通过command参数指定其事件处理函数。...鼠标左键释放;                按住鼠标左键移动;          双击左键;                   ...组件改变后的大小,仅Configure有效;     x,y                鼠标当前位置,相对于窗口;     x_root,y_root       鼠标当前位置,相对于整个屏幕  12...sys.stdout.flush()  刷新输出  Python3 从入门到开车  附1:tkinter中的颜色  附2:一个自己用tkinter写的计算器程序  #filename:Caculater

4.4K21

解决python封装Logging模块后,log位置显示错误的问题

解决过程 上网查了一下,排在前面的几条结果都是通过直接将logger返回给其他的类来实现的。但是我必须封装多一层以实现自定义的功能。因此,我尝试去logging库中寻找答案。...因为从打log函数的位置往前追1层,那就是打log的位置了。...我们继续往下看,看这个函数实现: 我们可以根据上面的代码得知,该函数的作用就是返回从当前位置栈帧往前追踪的第3个栈帧。...看到这里,我们已经可以回答最初的问题了:如何解决log位置显示错误的问题?...结语 其实本文所述的问题并不是特别的复杂,只是需要熟悉计算机的函数调用的原理:调用函数时,将当前函数的局部变量和返回地址压栈,函数return的时候,将ret_addr填写到指令指针寄存器之中。

1.3K21

tkinter -- Event(1)

事件的使用方法 测试鼠标点击(Click)事件 代码: import tkinter as tk root = tk.Tk() # 测试鼠标点击事件 def printcoords(event):     ...分别测试鼠标的事件,回调函数的参数 event 中(x,y)表示当前点击的坐标值 测试鼠标的移动(Motion)事件 测试鼠标移动事件 代码: import tkinter as tk root = tk.Tk...bt3 = tk.Button(root, text='rightmost button') bt3.bind('', printcoords) bt1.grid() bt2...分别测试鼠标的移动事件,只有当鼠标被按下后移动才回产生事件 测试鼠标的释放(Relase)事件 代码: import tkinter as tk root = tk.Tk() # 测试鼠标释放事件 def...分别测试鼠标的 Relase 事件,只有当鼠标被 Relase 后移动才回产生 Relase 事件 进入(Enter)事件 测试鼠标释放事件 代码: import tkinter as tk root

48610

Python 学习之 Tkinter「下」

如果单击一个项目,然后拖动鼠标会跟随选中,是默认的。 2.SINGLE:和 BROWSE 的区别是你只能选择一行,不能拖动。..., i) # 按顺序依次往后添加元素 lb.insert(tkinter.ACTIVE, "chicken") # 添加到开始的位置 # 将列表元素当做一个整体添加,不常用 lb.insert(...(1)) # 判断索引项是否被选中 效果图 列表框 ListBox II # 绑定变量 v = tkinter.StringVar() # SINGLE 与 BORWSE 相似,但是不支持鼠标按下后移动选中位置...Java", "Python", "PHP", "JS", "C#", "Mysql", "退出"]: if i == "退出": menu1.add_separator()...("", showMenu) 最后一张效果图留给大家去实现,关于 Tkinter 的知识还有很多,之后 Mark 会将其总结出来放在公号后台,大家回复「Tkinter」即可获取,以上知识如有错误之处

1.9K50

Python 图形化界面基础篇:处理鼠标事件

Python 图形化界面基础篇:处理鼠标事件 引言 在 Python 图形用户界面( GUI )应用程序开发中,处理鼠标事件是一项重要的任务。...在本文中,我们将深入研究如何使用 PythonTkinter 库来处理鼠标事件,并演示如何在应用程序中实现一些常见的鼠标交互功能。...在函数内部,我们通过 event.x 和 event.y 获取鼠标点击的坐标,并使用 create_oval 方法在点击位置绘制一个蓝色的小圆点。...在函数内部,我们通过 event.x 和 event.y 获取鼠标点击的坐标,并使用 create_oval 方法在点击位置绘制一个蓝色的小圆点。...最后,启动了 Tkinter 的主事件循环,使窗口变得可交互。 结论 在本文中,我们学习了如何使用 PythonTkinter 库来处理鼠标事件。

52530

Python 学习之 Tkinter「下」

文章接前一篇文章:Python 学习之 Tkinter「上 」 文章来源还是来自于我的知识星球球友.Python绿色通道 GUI教程就这么多了,完全满足我们日常做小工具的需求了,如果要继续深入可以自己研究..., i) # 按顺序依次往后添加元素 lb.insert(tkinter.ACTIVE, "chicken") # 添加到开始的位置 # 将列表元素当做一个整体添加,不常用 lb.insert(...列表框 ListBox II # 绑定变量 v = tkinter.StringVar() # SINGLE 与 BORWSE 相似,但是不支持鼠标按下后移动选中位置 lb = tkinter.Listbox...Menu 控件 II # 鼠标右键显示菜单 menuBar = tkinter.Menu(win) menu = tkinter.Menu(menuBar, tearoff=True) for i in...Python 学习之 Tkinter「上 」 用Python获取公众号评论并生成词云图证明抖音无罪 Python抓取公众号文章并生成pdf文件保存到本地 用Python抓取某大V的公众号文章 抓取得到

2.2K20

Python】函数进阶 ① ( 函数返回多个返回值 | 函数参数传递类型简介 | 位置参数 | 关键字参数 )

一、函数返回多个返回值 在函数中 , 如果要 返回 多个返回值 , 可以 在 return 语句中 , 设置多个返回值 , 这些返回值之间使用 逗号 隔开 , 这些返回值的类型是 元组 tuple 类型的...; 在下面的代码中 , 返回了 3 个返回值 , 其 本质上是返回了一个包含 3 个元素的 元组 数据容器 , 可以使用多重赋值将返回的值分别赋给 x、y、z 三个变量 ; def multiple_return...'tuple'> 1 2 3 二、函数参数传递类型 函数参数传递类型 : 位置参数 : 函数 调用时 按照参数在函数 定义时 的位置进行传递 ; ( 形参 和 实参 顺序 和 个数 必须一一对应 ) 关键字参数...: 函数 调用时 使用 " 键 = 值 " 的形式 , 传入参数 ; 缺省参数 : 不定长参数 : 1、位置参数 在 函数定义时 定义了 " 位置参数 " , 那么调用该函数时 , 传入的参数 必须...可以 混合使用 ; 特别注意 : 如果 关键字参数 与 位置参数 混合使用 , 位置参数 必须放在 关键字参数 前面 , 位置参数 顺序 与 个数 必须一致 , 关键字参数 不要求顺序一致 ; 代码示例

76510

错误、异常

tkintertkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl 解释器实现的,它是Python标准库的一部分,所以使用它进行...columspam:组件的列宽; row:组件所在的行起始位置; rowspam:组件的行宽; 组件place方法参数通过坐标来设置组件的位置: 常用tkinter组件: 按钮: ?...、键盘事件、窗口事件,绑定事件的组件: bind(sequence,func,add) bind_class(classname,sequence,func,add) bind_all(sequence...1表示鼠标左键、2表示鼠标中键、3表示鼠标右键 键盘事件: ?...使用tkinter.colorchooser模块中的函数创建对话框后,将返回颜色的RGB值以及可以在Python tkinter中使用的颜色字符值 1 #_*_ coding:utf-8 _*_ 2

6.3K10
领券