全局变量过程

Global variable process

我正在使用 Tkinter 创建 GUI 的重置按钮。我的目的是将标签的所有值重置为 0 或消失。

为了重置标签的值,我将标签定义为全局变量。

labelP = None
labelV = None
labelH = None
labelT = None

主要功能:

def predict():
    global labelP
    global labelV
    global labelH
    global labelT
...
    labelP = Label(mainframe, text = np.array(A[1,0]), width=5, font = 'Arial 10 bold').grid(column=2, row=5, sticky=W)
    labelV = Label(mainframe, text = np.array(A[1,1]), width=5, font = 'Arial 10 bold').grid(column=2, row=6, sticky=W)
    labelH = Label(mainframe, text = np.array(A[1,2]), width=5, font = 'Arial 10 bold').grid(column=2, row=7, sticky=W)
    labelT = Label(mainframe, text = np.array(A[1,3]), width=5, font = 'Arial 10 bold').grid(column=2, row=8, sticky=W)
...

重置功能:

def reset():
    global labelP
    global labelV
    global labelH
    global labelT

    labelP.delete()
    labelV.delete()
    labelH.delete()
    labelT.delete()

重置按钮:

btn2 = Button(mainframe, text="Reset", command = reset).grid(column=1, row=9, sticky=W)

虽然我也尝试了labelP.config()labelP.set("")labelP.destroy(),但我总是得到错误:

AttributeError: 'NoneType' object has no attribute ...

我应该为全局变量定义什么?

谢谢 这是我的代码:https://gist.github.com/TonyS0n/8ee8db392196a405c2ef27ac44df3059

您不能使用一行来初始化和布局小部件。你必须把它放在 2 行上,像这样:

labelP = Label(mainframe, text = np.array(A[1,0]), width=5, font = 'Arial 10 bold')
labelP.grid(column=2, row=5, sticky=W)