Tkinter 选择文件时,使用文件对话框进行额外(错误)鼠标单击

Tkinter 选择文件时,使用文件对话框进行额外(错误)鼠标单击,tkinter,Tkinter,我的应用程序包含许多复选按钮,filedialog用于加载各种类型的文件。我发现使用filedialog.askopenfilename()选择文件后,在当前鼠标光标的正下方有一个额外的鼠标单击事件。我认为,这个鼠标点击事件是选择文件的点击。问题是,如果选择文件后的当前鼠标光标位置位于选中按钮的正上方,则选中按钮将被错误切换。有没有办法消除这种额外的鼠标点击 import tkinter as tk from tkinter import filedialog def callback(eve

我的应用程序包含许多复选按钮,filedialog用于加载各种类型的文件。我发现使用filedialog.askopenfilename()选择文件后,在当前鼠标光标的正下方有一个额外的鼠标单击事件。我认为,这个鼠标点击事件是选择文件的点击。问题是,如果选择文件后的当前鼠标光标位置位于选中按钮的正上方,则选中按钮将被错误切换。有没有办法消除这种额外的鼠标点击

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()
将tkinter作为tk导入
从tkinter导入文件对话框
def回调(事件):
打印(“单击”,事件x,事件y)
def open_文件():
fname=tk.filedialog.askopenfilename()
root=tk.tk()
root.minsize(1024600)
root.bind(“,回调)
按钮(root,text='File action',command=open_File).grid(行=0,列=0)
root.mainloop()

上述代码在python 3.5.3下进行了验证。每次鼠标点击都将显示在终端上。单击标记为“文件操作”的按钮可触发文件对话框。可以看到,如果选择了一个文件,终端会显示额外的鼠标点击(假定与鼠标点击选择文件相关)。如果通过单击“X”或“取消”来取消文件对话框,则不会有额外的鼠标单击。

我知道这是对您问题的延迟答复,但一旦打开模式对话框,禁用所有复选框会有什么问题(例如,在javascript中,我会在模态对话框和窗口的其余部分之间创建一个覆盖层,以捕获这些内容),并仅在对话框关闭后启用它们?作为一个粗略的修复,您还可以使用最小的睡眠间隔(
window.after
功能)为了确保您能够捕捉到这一点。如果您发现了不同的解决方案,我们也非常欢迎您共享该解决方案。我知道这是对您问题的延迟答复,但一旦打开模式对话框,禁用所有复选框会有什么错(例如,在javascript中,我会在模态对话框和窗口的其余部分之间创建一个覆盖层,以捕获这些内容),并仅在对话框关闭后启用它们?作为一个粗略的修复,您还可以使用最小的睡眠间隔(
window.after
功能)如果你发现了一个不同的解决方案,欢迎你分享。