2016-12-25 94 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")