2014-06-06 24 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