2014-06-06 23 views
0

我有這樣的代碼:Python的Tkinter的按鈕操作

#!/usr/bin/python 

import Tkinter 
from tkFileDialog import askopenfilename 
import tkMessageBox 

root = Tkinter.Tk() 

def getFileName(): 
    # show an "Open" dialog box. 
    filename = askopenfilename(filetypes = [('Text files', '*.txt'),('All files','*')]) 

btnIco = Tkinter.Button(root, text="Icon", command=getFileName()) 
btnIco.pack() 

root.mainloop() 

我打算做的是點擊該按鈕時運行功能getFileName。但是,代碼運行時該函數運行,而按鈕在單擊時不執行任何操作。你能指出什麼是錯的嗎?

+0

另請參閱http://stackoverflow.com/q/23936127/3001761 – jonrsharpe

回答

1

替換下面的行:

btnIco = Tkinter.Button(root, text="Icon", command=getFileName()) 

與:

btnIco = Tkinter.Button(root, text="Icon", command=getFileName) 

換句話說,getFileName後除去()。通過追加(),代碼在創建按鈕之前調用getFileName,並將函數的返回值用作回調函數,而不是函數本身。

+0

謝謝!這工作! – XByte