我是python的新手,而Tk inter则更新。提前对不起,我可能在这里做任何明显的错误...
class application():
def __init__(self):
self.root = Tk()
frameCSV = LabelFrame(self.root)
Button(frameCSV, text="browse csv", command= self.browseCSV)
Label(frameCSV,text=csvFilename ,bg='white').grid(row =1,column=1)
def browseCSV(self):
global csvFilename
csvFilename = filedialog.askopenfilename( initialdir="/Volumes/", title="select the file", filetypes=[("CSV files", ".csv"),("all files", "*.*")] )
frameCSV是我的根窗口中的一个框架我想在此框架内添加一个标签,其中包含所选文件的返回路径。
但不起作用
Traceback (most recent call last):
File "/Users/guillaume/Downloads/uploader_v1_0_200312.py", line 106, in <module>
f=application()
File "/Users/guillaume/Downloads/uploader_v1_0_200312.py", line 70, in __init__
Label(frameCSV,text=csvFilename ,bg='white').grid(row =1,column=1)
NameError: name 'csvFilename' is not defined
我在做什么错?我不明白为什么函数不将PATH传递给Label来显示它。
非常感谢您的帮助。
如果您希望在browseCSV()
中选择文件后更新标签,则需要将StringVar
与标签关联,然后在browseCSV()
中对其进行更新:
class application():
def __init__(self):
self.root = Tk()
self.csvFilename = StringVar() # use instance variable
...
Label(frameCSV, textvariable=self.csvFilename, bg='white').grid(row=1, column=1)
...
def browseCSV(self):
filename = filedialog.askopenfilename(initialdir="/Volumes/", title="select the file",
filetypes=[("CSV files", ".csv"),("all files", "*.*")])
if filename:
# a filename is selected, so update the label via StringVar
self.csvFilename.set(filename)