【问题标题】:Global variable process [duplicate]全局变量过程[重复]
【发布时间】:2018-02-03 16:51:11
【问题描述】:

我正在使用 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

【问题讨论】:

标签: python user-interface variables tkinter global


【解决方案1】:

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

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

【讨论】:

  • 非常感谢。由于您的建议,我的问题得到了解决。但是,我不清楚单行和两行之间的区别。我想更深入地了解。你能解释一下吗?
  • @Tony 有什么要解释的? Label(...) 返回标签,grid(...) 返回 None
猜你喜欢
  • 2022-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 2012-11-05
  • 1970-01-01
  • 2021-11-11
相关资源
最近更新 更多