2015-05-14 52 views
1

如何將label_1的文本更改爲等於我在browse_for_file_1中選擇的文件?我一直在嘗試各種方法,但我似乎無法讓GUI更新。我想這可能是因爲它在一個框架內的框架?如何將標籤的文本更改爲按下Python中的文件名?

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() 
+0

道歉,我本來應該更清晰。首先我爲標籤文本嘗試了'textvariable'。然後,我嘗試了'label_1.config(text ='Example')''和'root.update()'後的每一個。 是的,絕對沒有任何反應。沒有錯誤,但它顯然不起作用。 –

+0

這是最簡單的例子。 –

回答

4

更改您的來電:

browse_button_1 = tk.Button(frame_1, text='Browse for 1st File', width=25, command=lambda:browse_for_file_1(label_1)).pack(side=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}) 
+0

太棒了,謝謝。 –

相關問題