单击按钮之前执行Tkinter Button命令[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我创建了一个框架,因为我有两个浏览按钮,我想要浏览两个以“.txt”扩展名结尾的文件并将其打印在屏幕上。

在我的场景中,在按下框架上的按钮之前调用浏览功能。我期待按下按钮时应该调用它。附上完整的代码。请有人纠正我做错了什么。

from Tkinter import *
import tkFileDialog as filedialog

global filename

root = Tk()

def browsefunc(entry):
    entry = filedialog.askopenfilename(filetypes=[("Text files","*.txt")])
    print entry


browsebutton1 = Button(root, text="Browsefile1", command=browsefunc("TXT_file1"))
browsebutton1.pack()

browsebutton2 = Button(root, text="Browsefile2", command=browsefunc("TXT_file2"))
browsebutton2.pack()


root.mainloop()
python python-2.7 tkinter tkinter-layout
1个回答
1
投票

因为您正在传递browsefunc函数一个参数或参数,该函数在启动时运行。这是因为python运行代码的方式。您可以使用lambda表达式来解决此问题

browsebutton1 = Button(root, text="Browsefile1", command=lambda: browsefunc("TXT_file1"))
© www.soinside.com 2019 - 2024. All rights reserved.