【问题标题】:Tkinter Button command getting executed before clicking the button [duplicate]在单击按钮之前执行 Tkinter 按钮命令 [重复]
【发布时间】:2018-08-11 14:52:32
【问题描述】:

我创建了一个框架,我有两个浏览按钮,我想浏览两个以“.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】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 2017-12-23
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多