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

发布于 2021-01-29 16:44:07

这个问题已经在这里有了答案

为什么在声明时执行Button参数“ command”? (5个答案)

2年前关闭。

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

在我的情况下,浏览函数在按框架上的Button之前被调用。期望当我按下Button时应该调用它。随附完整代码。请有人纠正我我做错了什么。

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()
关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    browsebutton1 = Button(root, text="Browsefile1", command=lambda: browsefunc("TXT_file1"))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看