2014-10-28 1261 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