当我运行代码时,TK表单应该弹出但是我收到了这个错误:
File "PycharmProjects/untitled/tkhello4.py", line 11, in resize
Label.config(font='Helvetica -%d bold' % scale.get())
TypeError: unbound method configure() must be called with Label instance as first argument (got nothing instead)
可能有什么不对?谢谢你。
以下是我的代码。
from Tkinter import *
def resize(ev=None):
Label.config(font='Helvetica -%d bold' % scale.get())
top = Tk()
top.geometry('250x150')
Lable = Label(top, text='Hello World!',
font='Helvetica -12 bold')
Lable.pack(fill=Y, expand=1)
scale= Scale(top, from_=10, to=40,
orient=HORIZONTAL, command=resize)
scale.set(12)
scale.pack(fill=X, expand=1)
quit = Button(top, text='QUIT', command=top.quit, activeforeground='white', activebackground='red')
quit.pack()
mainloop()
答案 0 :(得分:1)
您有一个班级Label
和一个变量Lable
,这似乎是混淆的秘诀 ......这正是发生的事情。
# here you refer to the class Label
Label.config(font='Helvetica -%d bold' % scale.get())
应该是
# but you should be using the instance Lable
Lable.config(font='Helvetica -%d bold' % scale.get())
答案 1 :(得分:0)
将标签名称更改为不属于内置功能的名称。
在命名任何变量时请记住这一点。如果你混淆名称空间,事情可能会变得混乱。始终以避免弄乱内置函数或任何导入函数的方式编写变量名称。
只需重命名您的标签,如下所示。最好遵循PEP-8样式指南来防止出现此类问题。
def resize(ev=None):
my_lable.config(font='Helvetica -%d bold' % scale.get())
my_lable = Label(top, text='Hello World!', font='Helvetica -12 bold')
my_lable.pack(fill=Y, expand=1)