Python-TypeError:必须使用Label实例作为第一个参数调用unbound方法configure()(没有任何内容)

时间:2017-06-16 13:37:14

标签: python tkinter

当我运行代码时,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()

2 个答案:

答案 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)