【问题标题】:Python tkinter button return filepath Python 2.7.13Python tkinter 按钮返回文件路径 Python 2.7.13
【发布时间】:2018-03-02 19:58:07
【问题描述】:

我正在使用 Python tkinter 来获取文件路径。但是,我不知道browsefunc如何处理按钮。基本上,我希望用户单击浏览按钮,然后用户选择文件。然后文件路径可以保存到我可以在后面使用的变量中。任何帮助将不胜感激。

import Tkinter
import ttk
import tkFileDialog as filedialog
root = Tkinter.Tk()
root.title('Branch Filter')
root.geometry("598x120+250+100")
def browsefunc():
    filename = filedialog.askopenfilename()

    return filename

ttk.Label(root,text="Select Your File (Only RAW files)").grid(row=0, column=0, sticky='e')
bButton = ttk.Button(root, text ="Browse", command=browsefunc).grid(row=3,column=0,sticky='w')

root.mainloop()
print bButton

【问题讨论】:

  • 您无法从按钮的命令中有效地返回任何内容,因为您的代码没有调用该函数。您需要对browsefunc() 中的选定文件名执行任何操作。如果您当时真的不想对文件名做任何事情,请将其存储在您以后可以访问的地方——也许是一个全局变量。
  • @jasonharper 谢谢!你能解释一下我能做些什么来执行browsefunc吗?我认为当用户单击按钮时,它会触发该按钮内的命令...
  • 这应该正是发生的情况 - 当您单击按钮时您没有得到文件对话框吗?只是函数中的return 没有做任何事情。

标签: python tkinter


【解决方案1】:

替换:

def browsefunc():
    filename = filedialog.askopenfilename()
    return filename

与:

filename = ''
def browsefunc():
    global filename
    filename = filedialog.askopenfilename()

当一个方法无法返回时。

【讨论】:

    【解决方案2】:

    您在这里所做的是将文件名保存到局部变量并将函数绑定到按钮。如果您想使用该变量,您可以创建一个全局变量,您可以在选择新路径时保存路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-11
      • 2017-01-24
      • 2014-09-30
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      相关资源
      最近更新 更多