2014-10-28 1265 views
1

嘗試使用「打開文件」按鈕創建GUI。當我運行下面顯示的代碼時,打開的文件對話框立即打開,而不是當我按下按鈕時。爲什麼?有沒有簡單的方法來解決這個不涉及使用類? (我目前不知道類的任何和我工作的一個時間緊迫的項目)在tkinter中打開文件的最簡單方法

from tkinter import * 

interface = Tk() 

def openfile(): 
    return filedialog.askopenfilename() 

button = ttk.Button(interface, text = "Open", command = openfile()) 
button.grid(column = 1, row = 1) 

interface.mainloop() 

回答

0

的代碼傳遞openfile函數調用,而不是函數本身的返回值。通過去除引起呼叫的尾部()來傳遞該函數本身。

from tkinter import * 
from tkinter import ttk 
from tkinter import filedialog 

interface = Tk() 

def openfile(): 
    return filedialog.askopenfilename() 

button = ttk.Button(interface, text="Open", command=openfile) # <------ 
button.grid(column=1, row=1) 

interface.mainloop() 
+0

它的作品,謝謝! – 2014-10-28 11:41:35

+0

對於我的初始代碼,爲什麼只要代碼運行,它就會打開一個對話框? – 2014-10-28 11:42:53

+0

@JakeLevi,因爲代碼調用該函數。 'openfile()':'()'<---- – falsetru 2014-10-28 11:45:07