我不确切地知道我的问题在哪里,它或者在绑定中,或者它的函数被调用。
我的按钮全部显示在labelFrame下,每个按钮都带有一个输入框,因此用户可以加载许多csv文件进行分析,并且文件路径可见。它必须由用户搜索,因为这些文件可以存在于我的不同和未连接的项目文件夹中。
这是一个示例按钮。
csv_type21 = Button(csvfiles, text = "Browse ...")
csv_type21.bind("<Button-1>", lambda event, obj = var21, tid = 21: find_cvsfile(event, obj, tid))
如果用户取消查找文件,它们将保持沉没状态,即使他们选择了文件,它也会保持沉没状态。 (但输入框确实使用文件路径更新)。
这是他们调用的函数,它要求输出一个csv文件并将其保存为元组,以便我可以跟踪哪个csv是哪个。之后,我为按钮所在的Entry框设置了StringVar,以声明文件路径。
def find_csvfile(event, obj, tid):
input_csvfile = askopenfile(initialdir = 'C:/',
filetypes = [("CSV File", "*.csv")],
title = 'Open CSV File for id ' + str(tid) + '...',
mode = 'r')
csv_data = tid, input_csvfile
filepath = input_csvfile.name
obj.set(filepath)
我试过摆弄不同的变量和参数,但没有任何作用。我认为它必须是多个按钮调用相同的命令,但我不能确定。
感谢任何帮助。
感谢。
答案 0 :(得分:4)
在return "break"
def find_csvfile(event, obj, tid):
答案 1 :(得分:2)
通过删除绑定解决了问题。 lambda命令被移入Button声明,并且从find_csvfile函数中删除了“event”参数。此解决方案可以在按下时停止按钮凹陷。
csv_type21 = Button(csvfiles, text = "Browse ...", command = lambda obj = var21, tid = 21: find_csvfile(obj, tid))
答案 2 :(得分:-3)
使用button.bind(“”,funcion)
进行探测def funcion()
print
当使用“”时,当鼠标按钮停止时调用启动并在执行funcion()期间释放。
返回时按下状态