Python AttributeError:按钮实例没有属性';设置';
我想打印上传文件的路径,所以我使用了.set()。尝试使用全局变量,但更改文件时它不会覆盖文件名Python AttributeError:按钮实例没有属性';设置';,python,tkinter,Python,Tkinter,我想打印上传文件的路径,所以我使用了.set()。尝试使用全局变量,但更改文件时它不会覆盖文件名 def callback(): file_name.set(askopenfilename(filetypes=(("Music File", "*.mp3"),("Video files", "*.mpg")))) file_name = Button(root, text="open", command=callback) file_name.pack(side=Tkinter.TO
def callback():
file_name.set(askopenfilename(filetypes=(("Music File", "*.mp3"),("Video files", "*.mpg"))))
file_name = Button(root, text="open", command=callback)
file_name.pack(side=Tkinter.TOP)
我犯了这个错误,有什么建议吗
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Python27\lib\lib-tk\Tkinter.py", line 1486, in __call__
return self.func(*args)
File "C:\Users\Xavier_\Desktop\PROJECT_FINAL(please don't edit)\segmentation_GUI.py", line 20, in callback
file_name.set(askopenfilename(filetypes=(("Music File", "*.mp3"),("Video files", "*.mpg"))))
AttributeError: Button instance has no attribute 'set'
假设要用选定文件的名称替换按钮中的文本 如错误消息所示,该按钮没有设置方法。您可以使用
配置
def callback():
file_name.configure(text=askopenfilename(...))
但你更应该用a来代替。创建StringVar
并将其绑定到按钮
,然后使用set
更新和get
检索该变量的值,即按钮上的文本
def callback():
var.set(askopenfilename(filetypes=(("Music File", "*.mp3"),("Video files", "*.mpg"))))
root = Tk()
var = StringVar()
var.set("select file...")
file_name = Button(root, textvariable=var, command=callback)
file_name.pack(side=TOP)
root.mainloop()
调用set
时,您想做什么?是否要将按钮的文本更改为所选文件名?如前所述,您的问题的答案是,“按钮
s没有设置的方法”,您说您想“打印上传文件的路径”。您正在寻找打印
功能吗?你说的“打印”是什么意思?也许你在找一份工作?它有一个set
方法,可以将它附加到某些类型的小部件上,这样设置它就会更新小部件的文本。也许不是,这很难说,但这只是猜测……调试的第一条规则:假设错误消息告诉您的是真相。错误消息表示按钮实例没有“设置”方法。这是真的。现在的问题是,为什么你认为它应该有一个固定的方法,你认为这个方法做什么?