如何使tkinter识别已定义的对象?



代码:

from tkinter import *
def show (A, B, C, D):
if A == "Large":

Label1 = Label(root, text=A).pack()
if B == "Medium":

Label1 = Label(root, text=B).pack()
if C == "Small":

Label1 = Label(root, text=C).pack()
if D == "Infinitesimal":

Label1 = Label(root, text=D).pack()
def clear ():
Label1.destroy()

root = Tk()
root.geometry("500x500+200+200")

var1 = StringVar()
var2 = StringVar()
var3 = StringVar()
var4 = StringVar()
a =Checkbutton(root, text="Large?", variable=var1, onvalue="Large")
a.deselect()
a.pack()
b =Checkbutton(root, text="Medium?", variable=var2, onvalue="Medium")
b.deselect()
b.pack()
c =Checkbutton(root, text="Small?", variable=var3, onvalue="Small")
c.deselect()
c.pack()
d =Checkbutton(root, text="Infinitesimal?", variable=var4, onvalue="Infinitesimal")
d.deselect()
d.pack()
W = Button(root, text="Submit", command=lambda: show(var1.get(), var2.get(), var3.get(), var4.get(), )).pack()
x = Button(root, text="Clear", command=clear).pack()
root.mainloop()

初始检查项目列表将帖子,但是,然后,假设人想使用clear按钮清除屏幕。这时我遇到了以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:Userslibtkinter__init__.py", line 1705, in __call__
return self.func(*args)
File "<ipython-input-55-b81bc2ffe1d0>", line 22, in clear
Label1.destroy()
NameError: name 'Label1' is not defined

我关心的不仅仅是修复这一个脚本,而是我有兴趣了解我做错了什么以及如何处理这种类型的错误。

为什么计算机不能识别'Label1' ?

show()函数中,一开始,添加global Label1

另外,如果你想:Python中的全局变量和局部变量是什么?

相关内容

最新更新