在Python中,如何在按钮按下时将标签文本更改为文件名?

在Python中,如何在按钮按下时将标签文本更改为文件名?,python,tkinter,Python,Tkinter,如何更改标签_1的文本,使其与我在浏览_文件_1中选择的文件相等?我一直在尝试各种方法,但似乎无法更新GUI。我想可能是因为它在一个框架内的一个框架内 import Tkinter as tk import tkFileDialog root = tk.Tk() #Frames frame_1 = tk.Frame(root) frame_1.pack() def browse_for_file_1(): file_name_1 = tkFileDialog.askopenfile

如何更改标签_1的文本,使其与我在浏览_文件_1中选择的文件相等?我一直在尝试各种方法,但似乎无法更新GUI。我想可能是因为它在一个框架内的一个框架内

import Tkinter as tk
import tkFileDialog

root = tk.Tk()

#Frames
frame_1 = tk.Frame(root)
frame_1.pack()

def browse_for_file_1():
    file_name_1 = tkFileDialog.askopenfilename(parent=root,title='Open 1st File')
    print file_name_1
    label_1.config(text=file_name_1)
    root.update()



#Browse 1
browse_button_1 = tk.Button(frame_1, text='Browse for 1st File', width=25, command=browse_for_file_1).pack(side=tk.LEFT, pady=10, padx=10)
label_1 = tk.Label(frame_1, fg="red", text="No file selected.")
label_1.pack(side=tk.RIGHT, pady=10, padx=10)

#Quit Button
quit = tk.Button(root, text='QUIT', width=25, fg="red", command=root.destroy).pack(pady=10, padx=10)

root.title("Zero Usage")
root.mainloop()
更改您的呼叫:

浏览\u按钮\u 1=tk.Buttonframe\u 1,text='browse for first File',width=25,command=lambda:browse\u for \u File\u 1label\u 1.packside=tk.LEFT,pady=10,padx=10

那么您的功能可以是:

def browse_for_file_1(label_1):
  file_name_1 = tkFileDialog.askopenfilename(parent=root,title='Open 1st File')
  label_1.config(text=file_name_1)
  # or label_1.config({'text':file_name_1})
更改您的呼叫:

浏览\u按钮\u 1=tk.Buttonframe\u 1,text='browse for first File',width=25,command=lambda:browse\u for \u File\u 1label\u 1.packside=tk.LEFT,pady=10,padx=10

那么您的功能可以是:

def browse_for_file_1(label_1):
  file_name_1 = tkFileDialog.askopenfilename(parent=root,title='Open 1st File')
  label_1.config(text=file_name_1)
  # or label_1.config({'text':file_name_1})

抱歉,我应该说得更清楚。首先,我尝试了标签文本的textvariable。然后,我尝试在每一个之后添加label_1.configtext='Example'和root.update。是的,绝对没有发生什么。没有错误,但显然不起作用。这是最小的例子。抱歉,我应该说得更清楚。首先,我尝试了标签文本的textvariable。然后,我尝试在每一个之后添加label_1.configtext='Example'和root.update。是的,绝对没有发生什么。没有错误,但显然不起作用。这是一个最小的例子。