模块的功能自动运行?

时间:2016-12-25 14:58:11

标签: python python-3.x tkinter

我无法弄清楚为什么我在运行脚本时运行我自动运行的功能而不按下按钮。

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()

1 个答案:

答案 0 :(得分: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")