2016-12-25 96 views
-2

我不知道为什么我运行脚本时运行脚本时调用的函数运行时没有按下按钮。模块的功能自动运行?

import tkinter 
from tkinter import filedialog 


root = tkinter.Tk() 
root.title("fool") 
root.geometry("300x300") 
br = tkinter.Button(root, text ="Carica File", command = filedialog.askopenfile(mode="r")) 
br.pack() 
+0

什么是你的问题?这是相当不清楚的。 – MarkyPython

回答

0

现在,你传递呼叫

filedialog.askopenfile(mode="r") 

的结果向command参数。为了能够得到这个结果,该函数被执行并且你马上就看到了对话框。你可能想要做的仅仅是提供一个功能按钮被按下时要调用的名字,所以你可以定义一个作为

def foo(): 
    filedialog.askopenfile(mode="r") 

,并使用

command = foo 

Button通话。您在上面的代码中所做的对应于command = foo()而不是(其执行该功能),而不是command = foo

如果你想要做在同一行的一切,而不是定义一个额外的功能,你还可以使用lambda写:

command = lambda: filedialog.askopenfile(mode="r")