我是Tkinter的绝对初学者,我需要帮助:我想用一个按钮打开一个文件.我到处都发现这个非常简单的例子:
from Tkinter import *
from tkFileDialog import askopenfilename
def callback():
name= askopenfilename()
print name
errmsg = 'Error!'
Button(text='File Open', command=callback).pack(fill=X)
mainloop()
Run Code Online (Sandbox Code Playgroud)
但是,如何从函数回调中调用变量"name"?我在这个函数之外需要这个变量!当然,我也可以在回调函数中打开文件,但我需要打开的文件将内容保存在数组中并使用数组...
最好的方法是在类中创建callback一个方法:
class Asker(object):
def __init__(self):
self.name = None
def callback(self):
self.name = askopenfilename()
print self.name
ask = Asker()
Button(text='File Open', command=ask.callback).pack(fill=X)
Run Code Online (Sandbox Code Playgroud)
现在,对象ask仍然存在,并且ask.name是None如果callback尚未执行,它有后的结果askopenfilename.
您可以使用global替代但是这样做确实没有优势,所以我建议您使用这种class方法.
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |