tkinter - 选择文件时使用文件对话框额外(错误)单击鼠标
问题描述
我的应用程序包含很多 Checkbuttons 和 filedialog 用于加载各种类型的文件。我发现使用 filedialog.askopenfilename() 选择文件后,在当前鼠标光标正下方的位置有一个额外的鼠标单击事件。这个鼠标点击事件是我认为选择文件的点击。问题是,如果选择文件后的当前鼠标光标位置正好在 Checkbutton 的顶部,则 Checkbutton 将被错误地切换。有没有办法消除这种额外的鼠标点击?
import tkinter as tk
from tkinter import filedialog
def callback(event):
print("clicked at", event.x, event.y)
def open_file():
fname=tk.filedialog.askopenfilename()
root = tk.Tk()
root.minsize(1024,600)
root.bind("<Button-1>", callback)
tk.Button(root,text='File action',command=open_file).grid(row=0,column=0)
root.mainloop()
以上代码在python 3.5.3下验证。每次鼠标点击都会显示在终端上。单击标记为“文件操作”的按钮会触发文件对话框。可以看出,如果选择了文件,终端会显示额外的鼠标单击(据说与鼠标单击以选择文件相关联)。如果通过单击“X”或“取消”取消文件对话框,则没有额外的鼠标单击。
解决方案
推荐阅读
- json - 我正在尝试使不同的服务器可以使用 python 在不和谐中具有不同的前缀,但它不起作用。问题是什么?
- dart - 如何使用 Dart 获得与 json 最接近的匹配
- typescript - 如何在 Typescript 的可选参数中创建函数
- java - 尝试在 maven 版本上运行并行构建准备和执行任务时出现 Ger 错误?
- c++ - 计算 ODB 查询将返回的结果数量的最佳方法是什么?
- html - CSS:在三角形之前在FF中有奇怪的透明边框但在chrome中没有
- glsl - 如何使用 glblendfuc 混合两个图像?
- c++ - C++ 静态代码分析器所需的建议
- php - 无论如何在oracle sql的2列中的1列中按非同步对数据进行分组?
- bash - 我们可以压缩和解压一个HDFS目录(有多个文件)并得到解压后的initiall目录树吗?