2014-10-20 20 views
0

這也許是容易的,但我就是想不通......傳遞從Tkinter的一個變量主程序

在下面的「打開文件」按鈕的代碼保存文件名以「名」 - - 但是我怎樣才能在Tkinter之外訪問這個變量?在「回調」中的返回語句,但我將如何訪問,因爲回調是在「按鈕」命令中?

from Tkinter import * 
from tkFileDialog import askopenfilename  

def callback(): 
    name= askopenfilename() 
    print name 

Button(text='File Open', command=callback).pack(fill=X) 
mainloop() 

#HOW DO I ACCESS FILENAME AFTER MAINLOOP? 
name = ???? 

回答

0

呃,這個怎麼樣?

from Tkinter import * 
from tkFileDialog import askopenfilename  

value_list = [] 

def callback(): 
    name = askopenfilename() 
    value_list.append(name) 
    print name 

Button(text='File Open', command=callback).pack(fill=X) 
mainloop() 

# value_list[0] is filename 
+0

這將是一個解決方案,謝謝:-) ---但這是做到這一點的標準方式? – Max 2014-10-20 11:02:04

+0

@Max我不確定標準方式是什麼,但我可以向你保證,你不能從回調中返回。 – laike9m 2014-10-20 11:24:40

+0

正常工作 - 我使用一個字典而不是一個列表來處理具有多個值的特定值,所以value_dict = {'inputfilepath':'G:\\ satellittdata \\ flerbrukBarents','outputfilepath':'G :\\ satellittdata \\ flerbrukBarents'}和函數value_dict ['inputfilepath'] =名稱 – Max 2014-10-21 06:57:25